因此,使用用于MVC3框架的aspx渲染引擎,很容易在主布局页面中定义一个部分,并在每个页面上显示的那些部分中插入html或asp代码,如下所示:
在主版面
上<!-- Secondary content -->
<div id="content-secondary">
<asp:ContentPlaceHolder ID="NavigationSecondary" runat="server">
<% Html.RenderAction("Menu", "Navigation", new { @id = "nav-secondary"}); %>
</asp:ContentPlaceHolder>
<asp:ContentPlaceHolder ID="cphSecondary" runat="server" />
</div>
<!-- /Secondary content -->
您可以看到在ContentPlaceHolder中呈现了一个名为NavigationSecondary的菜单。因此,在我创建的每个页面上,默认显示菜单,并在其下方显示任何其他额外内容。
现在,我如何在Razor引擎中解释这一点?我无法在网上找到太多信息。我找到了一些显示如何使用默认内容的内容。但是,当插入来自其他页面的内容时,该默认内容是否会被删除?
答案 0 :(得分:1)
Razor视图引擎允许检查(在_Layout.cshtml中)布局部分是否已由视图实现,因此您可以模仿将代码放入ContentPlaceHolder
。
<div id="content-secondary">
@if (IsSectionDefined("NavigationSecondary"))
{
Html.RenderAction("Menu", "Navigation", new {@id = "nav-secondary"});
@RenderSection("NavigationSecondary")
}
</div>
希望这就是你要找的东西。