不要在布局中渲染部分

时间:2015-01-19 07:25:16

标签: asp.net-mvc

我使用ASP.NET MVC 5和Empty Project。

我有一个布局和一个视图。在布局中,我有一个RenderSection(),在渲染之前检查一下。在视图我添加该部分,但不要渲染部分。

我收到此错误:

  

以下部分已定义但尚未呈现   对于布局页面"〜/ Views / _Layout.cshtml":"菜单"。

我的布局是:

<body>
<div id="menu">
    @if(IsSectionDefined("Menu"))
    {
        RenderSection("Menu", required: false);
    }
    else
    {
        <span>this is the default</span>
    }
</div>
<div id="content">
    @RenderBody()
</div>

我的观点是:

 @{
    ViewBag.Title = "Index";
    Layout = "~/Views/_Layout.cshtml";
}

    <h2>Index</h2>
    @section Menu{
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
        </ul>
    }

为什么不起作用?

1 个答案:

答案 0 :(得分:2)

@

也需要RenderSection符号
@if(IsSectionDefined("Menu"))
{
  @RenderSection("Menu", required: false);
}
else
{
  <span>this is the default</span>
}