ASP.NET MVC - 在Layout中有条件地渲染部分

igo*_*GIS 11 asp.net layout conditional render

我在_Layout.cshtml中有以下代码:

@if (SiteConfig.Instance.HasCustomMarkup)
{
     @RenderSection("bodyPart1", false)
     @RenderBody()
     @RenderSection("bodyPart2", false)
}
else
{
    <div id="mainContainer">
        @RenderBody()
    </div>        
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试仅在某些条件下渲染部分.但它不起作用,我有一个例外:

The following sections have been defined but have not been rendered for the layout page ...
Run Code Online (Sandbox Code Playgroud)

为此目的,mvc中是否有任何解决方法?谢谢!

Max*_*Max 22

只需检查部分是否存在,即:

@if (IsSectionDefined("bodyPart1"))
{
    @RenderSection("bodyPart1")
}
Run Code Online (Sandbox Code Playgroud)

  • @igorGIS请发表你的答案:) (2认同)