Für CSS, die auf der gesamten Site wiederverwendet werden, definiere ich sie im <head>
Abschnitt _Layout
:
<head>
<link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
@RenderSection("Styles", false)
</head>
und wenn ich einige ansichtsspezifische Stile benötige, definiere ich den Styles
Abschnitt in jeder Ansicht:
@section Styles {
<link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" />
}
Bearbeiten: Es ist nützlich zu wissen, dass der zweite Parameter in @RenderSection, false, bedeutet, dass der Abschnitt in einer Ansicht, die diese Masterseite verwendet, nicht erforderlich ist und die Ansichts-Engine die Tatsache, dass kein Abschnitt "Stile" definiert ist, selig ignoriert aus Ihrer Sicht. Wenn true, wird die Ansicht nicht gerendert und es wird ein Fehler ausgegeben, es sei denn, der Abschnitt "Stile" wurde definiert.
RenderSection
(überraschenderweise :) anrufen , nicht am Ende des Headers.Ich habe versucht, einen Block wie folgt hinzuzufügen:
Und ein entsprechender Block in der Datei _Layout.cshtml:
Welches funktioniert! Aber ich kann nicht anders, als zu glauben, dass es einen besseren Weg gibt. UPDATE: In der
@RenderSection
Anweisung wurde "false" hinzugefügt, damit Ihre Ansicht nicht splittert, wenn Sie es versäumen, einen@section
Aufruf hinzuzufügenhead
.quelle
"Head"
.@RenderSection()
. Guter Fang.Verwenden von
oder
könnte für dich arbeiten.
https://stackoverflow.com/a/36157950/2924015
quelle
Das Layout funktioniert genauso wie eine Masterseite. Jede CSS-Referenz, die das Layout hat, alle untergeordneten Seiten.
Scott Gu hat hier eine ausgezeichnete Erklärung
quelle
Ich bevorzuge die Verwendung des Razor-HTML-Hilfsprogramms aus der Client Dependency-DLL
quelle
Sie können diese Struktur in der Datei Layout.cshtml
quelle