2013-10-04 50 views
8

有条件地渲染部分我已经按照我的_Layout.cshtml代码:ASP.NET MVC - 在布局

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

所以我尽量使只能在某些条件下部分。但它是行不通的,我有个例外:

The following sections have been defined but have not been rendered for the layout page ... 

在这个目的下,mvc有什么解决方法吗? 谢谢!

回答

18

只需选中部分是否存在,即:

@if (IsSectionDefined("bodyPart1")) 
{ 
    @RenderSection("bodyPart1") 
} 
+1

感谢响应!它总是被定义在我的案例中。但我发现解决方案的作品 - 将部分定义换成标签,然后定义部分,如果某些条件在运行时为true,并且这种方式我没有得到异常。 – igorGIS

+2

@igorGIS请发表您的回答:) – Rachael