Как ссылаться на .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/...

Ответ 5

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

<link href="~/YourCssFolder/YourCssStyle.css" rel="stylesheet" type="text/css" />