2013-05-22 11 views
6

Na mojej stronie _Layout.cshtml chcę dołączyć tylko niektóre pakiety @ Styles.Render w zależności od wyświetlanego widoku. Na przykład jedna strona może korzystać z biblioteki jQueryUI, podczas gdy inna może nie i nie chcę, aby żądanie pobrania biblioteki, jeśli nie muszę. Czy mogę użyć instrukcji warunkowej w moim _layout.cshtml, aby to osiągnąć?Warunkowa @ Scripts.Render w ASP.net MVC 4

+0

Dlaczego nie można użyć do wyjścia z układu podstawowe style/skrypty, których potrzebują wszystkie widoki, a następnie pozwalają poszczególnym widokom dodawać dodatkowe pliki za pomocą sekcji '@'? –

+0

Ok. To ma sens. Dziękuję, @TimMedora. –

Odpowiedz

5

na stronie _Layout.cshtml dodać @RenderSection

@RenderSection("Page_Styles", required: false) 

Następnie w indywidualnych poglądów można dodać style ile potrzeba

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

sam pomysł skryptów

@RenderSection("Scripts", required: false) 

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

Jesteś lepiej wyłączyć tworzenie sekcji w pliku _layout.cshtml, a następnie dodać ciąg do tej sekcji w ramach samego widoku. I zrobić coś takiego dla moich stylów że nie chcę, aby załadować na każdą stronę:

<!-- _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> 

a następnie na stanowisku:

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