在asp.net mvc4中隐藏一个部分

时间:2013-11-26 18:16:46

标签: asp.net asp.net-mvc-4

我在布局页面上有一个菜单栏,并将其放在布局的一个部分。

@section MenuSection{
<ul class="menubar">
<li>Test</li>
<li>Test</li>
<li>Test</li>
</ul>
}

我在与布局页面关联的应用程序中有多个视图。在某些视图上不需要此菜单栏。所以我尝试隐藏该视图的部分

索引视图 -

@{
@RenderSection("MenuSection",required:false)
}

但是这个菜单部分从布局中消失了。

这样做的正确方法是什么?部分是精确的方式吗?布局页面中的部分定义是什么?

2 个答案:

答案 0 :(得分:1)

@if (SomeCondition){
    @RenderSection("MenuSection", required: false)
}

required只是意味着子页面 没有指定@section。但是,如果您希望在特定情况下显示它,请将其放在if声明中。

答案 1 :(得分:1)

我只是看了,我们得到了像这样的控制器和动作

var action = (ViewContext.RouteData.Values["action"] ?? "").ToString().ToLower();
var controller = (ViewContext.RouteData.Values["controller"] ?? "").ToString().ToLower();

将渲染放在一个if基于此的布拉德的答案