2013-10-04 48 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