2017-06-15 1 views
0

J'ai besoin d'un _LayoutPage avec un menù based sur l'autorisation de l'utilisateur que j'ai lu sur le serveur.Html.Action dans _SharedLayout à partialView avec le contrôleur

je trouve this article et essayer de le mettre en œuvre

essentiellement appeler la mise en page d'une action au contrôleur que l'autorisation utilisateur de recherche et retourner une vue partielle qui rendent seulement une partie de celui-ci est l'élément

c'est la structure: structure

ce _ le corps Layout:

<body> 
    @Html.Action("RenderMenu", "MasterController") 
    <div id="bodyMasterPage"> 
     @RenderBody(); 

    </div> 
    <div id="footerMasterPage"> 

    </div> 
</body> 

intestazione est mon point de vue partielle, tout à fait vide pour l'instant

MasterController:

public class MasterController : Controller 
    { 
     public ActionResult RenderMenu() 
     {   
      { 
       return PartialView("Instestazione", null); 
      } 
     } 
    } 

et TestController

public class TestController : Controller 
    { 
     public IUnitOfWork myUow; 
     // GET: WebMVC/Test 

     public TestController(IUnitOfWork uow) 
     { 
      myUow = uow;    
     } 

     public ActionResult Index() 
     { 
      myUow.Area.Read(1); 
      return View(); 
     } 
    } 

maintenant quand j'ouvre http://localhost:61599/WebMVC/Test/Index obtenir cette erreur:

The controller for path '/WebMVC/Test/Index' was not found or does not implement IController. 
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere la traccia dello stack. 

Dettagli eccezione: System.Web.HttpException: The controller for path '/WebMVC/Test/Index' was not found or does not implement IController. 

Errore nel codice sorgente: 


Riga 16: </head> 
Riga 17: <body> 
Riga 18: @Html.Action("RenderMenu", "MasterController") 
Riga 19: <div id="bodyMasterPage"> 
Riga 20:  @RenderBody(); 

qui semble étrange depuis que les négociations de TestController et si je supprimer le code de Html.Action (@Html.Action("RenderMenu", "MasterController")) alla fonctionne très bien

Pourquoi appeler MasterController obtenir erreur sur TestController

Répondre

0

est ici: @Html.Action("RenderMenu", "MasterControler")

suffixe Controller doit pas être utilisé

Je prends le code de lien sans beaucoup d'attention