Как включить ссылку CSS только в определенные страницы на моем веб-сайте asp.net? Если я включу ссылку на мою главную страницу, все страницы веб-сайта разделяют ссылку CSS.
Как включить CSS в главные страницы?
Ответ 1
Просто добавьте CSS ContentPlaceHolder со значением по умолчанию в нем.
В принципе, файл CSS, который вы укажете как значение по умолчанию, будет включен, если вы не переопределите этот placeholder с тегом <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>
Ответ 2
Вы можете использовать более одной главной страницы на своем сайте.
Вы также можете использовать вложенные мастер-страницы. На верхнем уровне может быть общая структура сайта, а затем одна мастерская вложенная главная страница для каждой из ваших разных областей.
Когда вы щелкните правой кнопкой мыши свой проект и выберите "Добавить", вы выбираете вариант 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>
Затем просто установите соответствующую главную страницу в любой из ваших веб-форм.
Ответ 3
В моей ситуации я использовал одну и ту же главную страницу из разных мест в решении. А так как префикс ~ (Tilde) в ссылке на мои файлы css, я добавил response.write в ссылку так:
<%= ResolveUrl("~/css/myStyle.css") %>