Saya ingin menautkan lembar gaya tertentu di Tampilan tertentu selain yang sudah ditautkan di _Layout.cshtml. Untuk non-Razor, saya melihat menggunakan pemegang tempat konten. Bagaimana saya melakukan ini untuk Razor?
Saya ingin menautkan lembar gaya tertentu di Tampilan tertentu selain yang sudah ditautkan di _Layout.cshtml. Untuk non-Razor, saya melihat menggunakan pemegang tempat konten. Bagaimana saya melakukan ini untuk Razor?
Setara dengan placeholder konten di Razor adalah bagian.
Di _Layout.cshtml Anda:
<head>
@RenderSection("Styles", required: false)
</head>
Kemudian di halaman konten Anda:
@section Styles {
<link href="@Url.Content("~/Content/StandardSize.css")" />
}
Solusi alternatif adalah menempatkan style Anda ke ViewBag / ViewData:
Di _Layout.cshtml Anda:
<head>
@foreach(string style in ViewBag.Styles ?? new string[0]) {
<link href="@Url.Content(style)" />
}
</head>
Dan di halaman konten Anda:
@{
ViewBag.Styles = new[] { "~/Content/StandardSize.css" };
}
Ini berfungsi karena halaman tampilan dijalankan sebelum tata letak.
Anehnya (untuk saya), asp: ContentPlaceHolder tidak berfungsi. Tampaknya sangat tidak mengesankan. Saya ingin tahu apakah ada cara lain?
Secara khusus, Anda masukkan <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
di _layout.cshtml dan
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
<link href="@Url.Content("~/Content/StandardSize.css")" rel="stylesheet" type="text/css" />
</asp:Content>
dalam pandanganmu.