Как ссылаться на .css файл на бритву?
Я знаю, как установить .css файлы в файле _Layout.cshtml, но как насчет применения таблицы стилей для каждого представления?
Мое мышление здесь в том, что в _Layout.cshtml у вас есть теги <head>
, но не так в одном из ваших представлений без макета. Где идут теги <link>
?
Ответы
Ответ 1
Для CSS, которые повторно используются среди всего сайта, я определяю их в разделе <head>
_Layout
:
<head>
<link href="@Url.Content("~/Styles/main.css")" rel="stylesheet" type="text/css" />
@RenderSection("Styles", false)
</head>
и если мне нужны некоторые конкретные стили представления, я определяю раздел Styles
в каждом представлении:
@section Styles {
<link href="@Url.Content("~/Styles/view_specific_style.css")" rel="stylesheet" type="text/css" />
}
Изменить: полезно знать, что второй параметр в @RenderSection, false, означает, что раздел не требуется для представления, которое использует эту главную страницу, и механизм просмотра будет в блаженном игнорировании того факта, что нет "Стили" раздел, определенный в вашем представлении. Если true, представление не будет отображаться, и будет выведена ошибка, если раздел "Стили" не определен.
Ответ 2
Я попробовал добавить такой блок:
@section styles{
<link rel="Stylesheet" href="@Href("~/Content/MyStyles.css")" />
}
И соответствующий блок в файле _Layout.cshtml:
<head>
<title>@ViewBag.Title</title>
@RenderSection("styles", false);
</head>
Что работает! Но я не могу не думать об этом лучше. UPDATE: добавлено "false" в инструкции @RenderSection
, поэтому ваше представление не будет "splode, когда вы пренебрегаете добавлением @section
под названием head
.
Ответ 3
Использование
@Scripts.Render("~/scripts/myScript.js")
или
@Styles.Render("~/styles/myStylesheet.css")
может работать для вас.
fooobar.com/questions/27539/...
Ответ 4
Макет работает так же, как и главная страница. любая ссылка css, которую имеет макет, любые дочерние страницы будут иметь.
У Скотта Гу есть отличное объяснение здесь
Ответ 5
Вы можете создать эту структуру в файле Layout.cshtml
<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />