其中一个控制器的额外菜单

时间:2011-02-12 23:30:09

标签: asp.net-mvc-3

我有一个名为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()
        }

但我不知道应该如何正确地完成......

1 个答案:

答案 0 :(得分:0)

为什么不创建一个可选部分,只在Manager控制器的Views中实现该部分?

@RenderSection("ManagerMenu", false);

然后在ManagerController视图中执行此操作:

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