Pour les CSS qui sont réutilisés sur l'ensemble du site, je les définis dans la <head>
section du _Layout
:
<head>
<link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
@RenderSection("Styles", false)
</head>
et si j'ai besoin de styles spécifiques à une vue, je définis la Styles
section dans chaque vue:
@section Styles {
<link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" />
}
Edit: il est utile de savoir que le deuxième paramètre de @RenderSection, false, signifie que la section n'est pas requise sur une vue qui utilise cette page maître, et le moteur de vue ignorera parfaitement le fait qu'aucune section "Styles" n'est définie à votre avis. Si vrai, la vue ne sera pas rendue et une erreur sera renvoyée à moins que la section "Styles" n'ait été définie.
RenderSection
(étonnamment :), pas à la fin de l'en-tête.J'ai essayé d'ajouter un bloc comme ceci:
Et un bloc correspondant dans le fichier _Layout.cshtml:
Ce qui fonctionne! Mais je ne peux pas m'empêcher de penser qu'il existe un meilleur moyen. MISE À JOUR: Ajout de "false" dans l'
@RenderSection
instruction pour que votre vue ne se dissipe pas lorsque vous négligez d'ajouter un@section
appeléhead
.la source
"Head"
.@RenderSection()
. Bonne prise.En utilisant
ou
pourrait fonctionner pour vous.
https://stackoverflow.com/a/36157950/2924015
la source
la mise en page fonctionne de la même manière qu'une page maître. toute référence css que la mise en page a, toutes les pages enfants auront.
Scott Gu a une excellente explication ici
la source
Je préfère utiliser l'assistant html razor de la DLL de dépendance client
la source
Vous pouvez cette structure dans le fichier Layout.cshtml
la source