2013-10-04 14 views
8

ich habe folgenden Code in meinem _Layout.cshtml Render:ASP.NET MVC - Abschnitt bedingt in der Layout-

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

Also versuche ich, Abschnitte auf einigem Zustand nur zu machen. Aber es wird nicht funktionieren, und ich habe eine Ausnahme:

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

Gibt es eine Abhilfe in mvc für diese Zwecke? danke!

Antwort

18

einfach prüfen, ob nicht Abschnitt vorhanden ist, d.h .:

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

Dank für die Antwort! Es ist immer in meinem Fall definiert. Aber ich fand die Lösung, die funktioniert - Wrap-Abschnitt Definition in Tags, dann Abschnitte definieren, wenn einige Bedingung zur Laufzeit wahr, und auf diese Weise habe ich keine Ausnahme erhalten. – igorGIS

+2

@igorGIS bitte posten Sie Ihre Antwort :) – Rachael