W przypadku CSS, które są ponownie wykorzystywane w całej witrynie, definiuję je w <head>
sekcji _Layout
:
<head>
<link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
@RenderSection("Styles", false)
</head>
a jeśli potrzebuję stylów specyficznych dla widoku, definiuję Styles
sekcję w każdym widoku:
@section Styles {
<link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" />
}
Edycja: Warto wiedzieć, że drugi parametr w @RenderSection, false, oznacza, że sekcja nie jest wymagana w widoku korzystającym z tej strony wzorcowej, a silnik widoku błogie zignoruje fakt, że nie zdefiniowano sekcji „Style” twoim zdaniem. Jeśli true, widok nie będzie renderowany, a błąd zostanie zgłoszony, chyba że zdefiniowano sekcję „Style”.
RenderSection
(zaskakująco :), a nie na końcu nagłówka.Próbowałem dodać taki blok:
I odpowiedni blok w pliku _Layout.cshtml:
Które działa! Ale nic nie mogę poradzić, ale myślę, że jest lepszy sposób. AKTUALIZACJA: Dodano „fałsz” w
@RenderSection
instrukcji, aby twój widok nie „rozpadł się, gdy zaniedbałeś dodanie@section
wywołanegohead
.źródło
"Head"
.@RenderSection()
. Dobry chwytZa pomocą
lub
może pracować dla ciebie.
https://stackoverflow.com/a/36157950/2924015
źródło
układ działa tak samo jak strona wzorcowa. dowolne odwołanie css, które ma układ, wszystkie strony podrzędne będą miały.
Scott Gu ma tutaj doskonałe wyjaśnienie
źródło
Wolę używać pomocnika html razor z biblioteki DLL Dependency
źródło
Możesz tę strukturę w pliku Layout.cshtml
źródło