ASP.NET MVC - должны ли таблицы стилей находиться в файле Site.Master? - PullRequest
1 голос
/ 12 мая 2010

Я заметил, что не могу добавить таблицы стилей ни на одну страницу. Они должны быть добавлены на главную страницу.

У меня уже есть около 15 таблиц стилей в главном представлении, что кажется излишним, поскольку только некоторые страницы используют определенную таблицу стилей.

Я полагаю, что мог бы сослаться на файл через javascript (хотя я не могу думать о том, как это происходит в моей голове), но было бы очень хорошо, если бы мне не пришлось использовать его.

Ответы [ 4 ]

7 голосов
/ 12 мая 2010

Вы должны быть в состоянии добавить их в заполнитель заголовка на страницах контента ...

MasterPage:

<head>
   <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

Страница содержания:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <%-- link styles here...--%>
</asp:Content>
1 голос
/ 12 мая 2010

Можете показать код?

На самом деле возможно иметь таблицу стилей CSS в представлении. Но вопрос в том, хорошая ли это практика. Лучше всего создать заполнитель на главной странице в разделе «Голова» и использовать этот заполнитель в представлении для использования правильных файлов CSS.

Как это:

На вашей главной странице:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Example</title>
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" />
</head>

<body>

Внутри вашего взгляда:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <link href="<%= Url.Content("~/Content/style/MyStyles.css") %>" rel="stylesheet" type="text/css" />
</asp:Content>
1 голос
/ 12 мая 2010

Нет, им не нужно заходить на главную страницу.

Вы можете создать для них заполнитель содержимого на главной странице, а затем добавить стили, специфичные для страницы, используя элемент содержимого на странице.

Например, в мастере:

<head>
    <asp:ContentPlaceHolder ID="Styles" runat="server">
    </asp:ContentPlaceHolder>
</head>

Тогда на странице:

<asp:Content ID="styleContent" ContentPlaceHolderID="Styles" runat="server">
    <link rel="stylesheet" type="text/css" href="<%= Url.Content("~/Content/style/MyStyles.css") %>" />
</asp:Content>
0 голосов
/ 12 мая 2010

Вы можете хранить таблицы стилей вместе с изображениями и элементами управления как часть Theme и указывать на каждой странице содержимого, какую тему следует использовать. Примечание: Вы не можете указать тему в самой MasterPage. Она работает только с директивами Page.

Обратите внимание, что для этого требуется, чтобы элемент head был runat="server", чтобы ASP.NET автоматически добавлял соответствующие ссылки на таблицы стилей на страницу.

Я не уверен, относится ли это к ASP.NET MVC или нет, но вы используете MasterPage ...

...