我可以在_Layout.cshtml中有条件地渲染部分视图吗?

时间:2013-03-11 22:29:41

标签: asp.net-mvc partial-views

假设我有一个_Layout.cshtml,我在其中渲染左侧边栏,这对我网站的每个页面都是通用的。 沿着这些方向的东西 - 例如菜单

<div id="left-sidebar">
    @Html.Action("_MenuView", "LeftSideMenu")
</div>

我想要的功能是添加另一个局部视图,但只在网站的某些部分显示。

例如,在博客部分中,我可能希望显示帖子类别列表或帖子的树视图。

<div id="left-sidebar">
    @Html.Action("_MenuView", "LeftSideMenu")

    @if ("???")
    {
        @Html.Action("_BlogTreeView", "BlogEntries")
    }
</div>

我怎么能这样做?我知道如果我正在渲染的视图由BlogController返回,我想显示“_BlogTreeView”...我从那里去哪里?

1 个答案:

答案 0 :(得分:8)

在您的布局中,添加此section

@RenderSection("blogEntries", false)

然后在每个要显示局部视图的视图中添加:

@section blogEntries {
    @Html.Action("_BlogTreeView", "BlogEntries")
}