2013-10-04 20 views
8

ho seguente codice nel mio _Layout.cshtml:ASP.NET MVC - Render sezione condizionale in Layout

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

così cerco di rendere sezioni solo a una certa condizione. Ma non funziona e ho un'eccezione:

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

C'è qualche soluzione in mvc per questo scopo? grazie!

risposta

18

sufficiente verificare se esista o meno la sezione, cioè .:

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

Grazie per la risposta! È sempre definito nel mio caso. Ma ho trovato la soluzione che funziona: racchiudere la definizione della sezione nei tag , quindi definire le sezioni se alcune condizioni sono vere in fase di esecuzione e in questo modo non ottengo eccezioni. – igorGIS

+2

@igorGIS per favore inserisci la tua risposta :) – Rachael

Problemi correlati