2013-05-22 18 views
6

Nella mia pagina _Layout.cshtml desidero includere solo alcuni pacchetti @ Styles.Render in base alla vista visualizzata. Ad esempio una pagina può usare la libreria jQueryUI mentre un'altra no e non voglio fare la richiesta di scaricare la libreria se non devo. Posso usare un'istruzione condizionale nel mio _layout.cshtml per ottenere questo?Condizionale @ Scripts.Render in ASP.net MVC 4

+0

Perché non si utilizza il layout per l'uscita del stili di base/script che necessitano di tutte le viste, quindi lasciare che le singole viste aggiungano file aggiuntivi utilizzando una '@ sezione'? –

+0

Ok. Ciò ha senso. Grazie, @ Timimedora. –

risposta

5

Nella pagina _Layout.cshtml aggiungere un @RenderSection

@RenderSection("Page_Styles", required: false) 

Poi, nel vostro punto di vista individuale è possibile aggiungere gli stili in base alle esigenze

@section Page_Styles { 
    @Styles.Render("~/bundles/style/foo") 
} 

Stessa idea per gli script

@RenderSection("Scripts", required: false) 

@section Scripts { 
    @Scripts.Render("~/bundles/jqueryui") 
} 
3

Sei meglio creare una sezione nel file _layout.cshtml e quindi aggiungere cont ent in quella sezione all'interno della vista stessa. Faccio qualcosa di simile per i miei fogli di stile che io non voglio caricare su ogni singola pagina:

<!-- _layout.cshtml --> 
<head> 
    <!-- will load on every page --> 
    <link rel="stylesheet" href="common.css" /> 
    <!-- will load on only the views where you have @section CSS --> 
    @RenderSection("CSS", false) 
</head> 

e poi la vista:

<p>some content</p> 
@section CSS { @Styles.Render("~/mystylesheet.css") }