Как ссылаться на файл .css в бритве? - PullRequest
170 голосов
/ 16 февраля 2011

Я знаю, как установить файлы .css в файле _Layout.cshtml, но как насчет применения таблицы стилей для каждого просмотра?

Я думаю, что в _Layout.cshtml у вас есть<head> теги для работы, но не в одном из ваших видов без макета.Куда идут теги <link>?

Ответы [ 6 ]

300 голосов
/ 16 февраля 2011

Для 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, представление не будет отображаться, и будет выдана ошибка, если не был определен раздел «Стили».

19 голосов
/ 16 февраля 2011

Я пытался добавить блок примерно так:

@section styles{
    <link rel="Stylesheet" href="@Href("~/Content/MyStyles.css")" />
}

И соответствующий блок в файле _Layout.cshtml:

<head>
<title>@ViewBag.Title</title>
@RenderSection("styles", false);
</head>

Что работает! Но я не могу не думать, что есть лучший способ. ОБНОВЛЕНИЕ: добавлено «false» в операторе @RenderSection, чтобы ваш взгляд не всплывал, когда вы не добавите @section с именем head.

10 голосов
/ 22 марта 2016

Использование

@Scripts.Render("~/scripts/myScript.js")

или

@Styles.Render("~/styles/myStylesheet.css")

может работать для вас.

https://stackoverflow.com/a/36157950/2924015

3 голосов
/ 16 февраля 2011

макет работает так же, как главная страница. любая ссылка CSS, которая есть у макета, будет у всех дочерних страниц.

Скотт Гу дает отличное объяснение здесь

1 голос
/ 28 февраля 2019

Я предпочитаю использовать бритвенный помощник HTML из Client Dependency DLL

Html.RequireCss("yourfile", 9999); // 9999 is loading priority 
0 голосов
/ 31 марта 2017

Вы можете эту структуру в файле Layout.cshtml

<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...