Как включить CSS в главные страницы? - PullRequest
23 голосов
/ 25 октября 2010

Как включить ссылку на CSS только в некоторые страницы на моем сайте asp.net?Если я включу ссылку на мою главную страницу, все страницы сайта будут содержать ссылку CSS.

Ответы [ 3 ]

38 голосов
/ 25 октября 2010

Просто добавьте CSS ContentPlaceHolder со значением по умолчанию.

Обычно CSS-файл, указанный вами по умолчанию, будет включен, если вы не переопределите этот заполнитель тегом <asp:Content /> на дочерней странице.

Ваша мастер-страница должна выглядеть примерно так.

<head>
    <asp:ContentPlaceHolder ID="Stylesheets" runat="server">
        <link rel="stylesheet" href="/css/master.css" type="text/css" />
    </asp:ContentPlaceHolder>
</head>

Затем со всех страниц, использующих эту мастер-страницу, вы можете просто переопределить ее с помощью другой таблицы стилей.

Вкл. (Пример) AboutUs.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
    <link rel="stylesheet" href="/css/form.css" type="text/css" />
</asp:Content>
6 голосов
/ 02 июля 2014

В моей ситуации я использовал одну и ту же мастер-страницу из разных мест решения.И так как префикс ~ (Tilde) в ссылке на мои css файлы, я добавил в ссылку response.write следующим образом:

<%= ResolveUrl("~/css/myStyle.css") %>
6 голосов
/ 25 октября 2010

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

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

Когда вы щелкаете правой кнопкой мыши по своему проекту и выбираете Добавить, вы выбираете опцию WebContentForm вместо WebForm.Затем вы можете выбрать соответствующую мастер-страницу.

В ваших вложенных мастер-страницах вы устанавливаете MasterPageFile равным вашей мастер-странице верхнего уровня.

Редактировать В сочетании с подходом @ Marko выможет иметь следующее ...

Преимущество в том, что все ваши переопределения должны быть записаны только один раз.

Верхний уровень MasterPage:

<head>
    <asp:ContentPlaceHolder ID="Stylesheets" runat="server">
        <link rel="stylesheet" href="/css/default.css" type="text/css" />
    </asp:ContentPlaceHolder>
</head>

Вложенный MasterPageбез переопределения

<%@ Page Language="C#" MasterPageFile="~/Site.master"%>
//don't reference the Stylesheets ContentPlaceHolder and the default is rendered

Вложенный MasterPage One с override.css

<%@ Page Language="C#" MasterPageFile="~/Site.master"%>
<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
    <link rel="stylesheet" href="/css/override.css" type="text/css" />
</asp:Content>

Вложенный MasterPage Two с secondOverride.css

<%@ Page Language="C#" MasterPageFile="~/Site.master"%>
<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
    <link rel="stylesheet" href="/css/secondOverride.css" type="text/css" />
</asp:Content>

Затем просто установите соответствующийглавная страница в любой из ваших веб-форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...