2011-02-12 59 views
0

我有一個名爲Manager的控制器,我希望爲所有視圖提供附加菜單。我只需在'@RenderBody()'之前和之後添加一些內容給_Layout.cshtml。我怎樣才能使用控制器/視圖做到這一點?其中一個控制器的額外菜單

例子:

這是怎麼回事,從ManagerController意見的,現在看起來像:

<div id="content"> 
    <h2>Projects Manager</h2> 
    <p> 
    Only for admin. 
    </p>      
</div>   
@{Html.RenderAction("ManagerMenu", "Manager");} 

我想改變它(並保持相同的結果):

<h2>Projects Manager</h2> 
    <p> 
    Only for admin. 
    </p> 

我怎樣才能做到這一點?

我的想法是:

@if ("ProjectManager.Controllers.ManagerController" == ViewContext.Controller.ToString()) 
     { 
      <div id="content"> 
       @RenderBody() 
      </div>   
      {Html.RenderAction("ManagerMenu", "Manager");} 
     } 
     else 
     { 
      @RenderBody() 
     } 

但我不知道應該如何正確地完成......

回答

0

爲什麼不創建一個可選的部分,只有實現的觀點,即部分經理控制器?

@RenderSection("ManagerMenu", false); 

然後做這在ManagerController觀點:

@section ManagerMenu { 
    @Html.RenderAction("ManagerMenu", "Manager") 
}