2017-01-23 2 views
0

Je veux de mon domaine d'action rendu Index() (nommé Menu) dans Mise en page de mon projet principal MVC par ce codeRender action de la zone dans la page de mise en page de mvc

et a obtenu erreur sur cette ligne de mise en page

@{Html.RenderAction("Index", "Menu", new { area = "" }); }

erreur exécution de la demande enfant gestionnaire 'System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerAsyncWrapper'.

et voici mon AreaRegistration code seulement pour informer:

 public override string AreaName 
    { 
     get 
     { 
      return "Menu"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Menu_default", 
      "Menu/{controller}/{action}/{id}", 
      new { controller = "Menu", action = "Index", id = UrlParameter.Optional }, 
      new string[] { "Menu.Controllers" } 
     ); 

    } 

que vous voyez mon nom du contrôleur est Menu

Modifié: la raison principale de mon problème est this ... Index action hors de ma zone ne peux pas retourner son point de vue ... j'ai été mis un point de rupture dans l'action Index, et un point de rupture à l'intérieur de la vue Index ... et le programme est r et s'arrêter sur le premier, mais ne s'arrête jamais en deuxième !! ... donc le principal problème est cette ... action Index de ma région ne retourne pas vue Index ..

+1

double possible de [Erreur d'exécuter la demande de l'enfant pour gestionnaire en vue] (http://stackoverflow.com/questions/19272720/error-executing -child-request-for-handler-in-view) – caesay

+0

Vous êtes dans la zone Menu, et vous ne speficy aucune zone dans Html.RenderAction: new {area = "Menu"}); –

+0

@LaurentLequenne je veux rendre l'action dans mes projets principaux Page de mise en page ... si je spécifie le nom de la zone. cela apporte une autre erreur logique ... car les actions rendues (qui sont dans la mise en page) ne devraient pas avoir de page parent ... –

Répondre

0

Essayez celui

@Html.Action("Index", "Menu") 
0

i résous. En fait, seule solution pour faire cette chose utilisait RenderPartial avec chemin direct:

@{ Html.RenderPartial("~/Areas/Menu/Views/Menu/Index.cshtml");}