Zo *_*Has 23 asp.net master-pages asp.net-2.0
如何在我的asp.net网站上的某些页面中包含CSS引用?如果我在我的母版页中包含该引用,则该网站的所有页面都共享CSS引用.
Mar*_*rko 38
只需添加一个CSS ContentPlaceHolder,其中包含默认值.
基本上,除非您<asp:Content />
使用子页面中的标记覆盖该占位符,否则将包含您指定为默认值的CSS文件.
您的母版页看起来应该是这样的.
<head>
<asp:ContentPlaceHolder ID="Stylesheets" runat="server">
<link rel="stylesheet" href="/css/master.css" type="text/css" />
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud)
然后,从使用该母版页的任何页面,您只需使用不同的样式表覆盖它.
在(例子)AboutUs.aspx
<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
<link rel="stylesheet" href="/css/form.css" type="text/css" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
您可以在您的网站上使用多个母版页.
您还可以使用嵌套母版页.顶级可能具有常规站点结构,然后是每个不同区域的一个主嵌套母版页.
右键单击项目并选择"添加"时,选择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>
Run Code Online (Sandbox Code Playgroud)
嵌套的MasterPage没有覆盖
<%@ Page Language="C#" MasterPageFile="~/Site.master"%>
//don't reference the Stylesheets ContentPlaceHolder and the default is rendered
Run Code Online (Sandbox Code Playgroud)
带有override.css的嵌套MasterPage One
<%@ 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>
Run Code Online (Sandbox Code Playgroud)
嵌套的MasterPage 2与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>
Run Code Online (Sandbox Code Playgroud)
然后,只需在任何Web表单上设置相应的母版页.
小智 6
在我的情况下,我在解决方案中使用了来自不同位置的相同母版页.并且由于对我的css文件的引用的〜(Tilde)前缀,我在引用中添加了一个response.write,如下所示:
<%= ResolveUrl("~/css/myStyle.css") %>
Run Code Online (Sandbox Code Playgroud)