从_Layout.cshtml中删除一个部分

时间:2012-11-11 02:06:50

标签: asp.net-mvc master-pages layout-page

在我的主视图(_Layout.cshtml)中,我有一个树状菜单。

我想删除主页面(主页)中的树状菜单 布局的其余部分应该留在那里,我希望房屋的主体占据树状菜单的空间。

任何有效的盒内选项?

1 个答案:

答案 0 :(得分:3)

一种方法是创建一个自定义视图页面,其中包含用于显示/排除树状菜单的标志。

public class CustomViewPage<T> : WebViewPage 
{
    public bool ShowTreeMenu 
    { 
        get 
        {
            return (ViewBag.ExcludeMenu == null || ViewBag.ExcludeMenu == false);
        }         
    }
}

从布局文件中继承自定义类:

@inherits CustomViewPage<dynamic>

然后(在布局文件中)仅在以下情况下显示树状菜单:

<nav>
@if (ShowTreeMenu)
{ 
    @Html.Partial("_TreeMenu")                            
}
</nav>

当应排除菜单时,从内容页面设置标志:

@{
  ViewBag.Title = "Home Page";
  ViewBag.ExcludeMenu = true;
 }