2010-10-25 78 views

回答

36

只需添加一个带有默认值的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> 
+3

+1我其实比我的建议更喜欢这个解决方案。我之前使用过它,这是一个不错的选择。尽管我会留下我的回答,因为有人可能会发现它有帮助。 – 2010-10-25 11:13:49

6

您可以在您的网站上使用多个母版页。

您也可以使用嵌套的母版页。顶层可能有一般的网站结构,然后有一个主嵌套母版页面用于您的每个不同区域。

当您右键单击您的项目并选择添加时,您选择选项WebContentForm而不是WebForm。然后你可以选择适当的母版页。

在嵌套的母版页中,您将MasterPageFile设置为等于顶级母版页。

编辑当@马尔科的方式,你可以有以下的组合...

的优势在这里是你的所有优先选项只写一次。

顶级母版:

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

嵌套母版,没有覆盖

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

嵌套母版与一个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> 

嵌套母版用两个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> 

然后,只需在任何Web表单上设置适当的母版页。

+0

Is'nt有什么办法可以只包括在我的页面的CSS参考哪些继承母版页面? – 2010-10-25 11:12:41

+0

是的,请参阅Marko的回答。这两种方法的组合可能完美。 – 2010-10-25 11:15:04

+0

嵌套母版页上的微软引用:https://msdn.microsoft.com/en-us/library/x2b3ktt7%28v=vs.140%29.aspx – Roberto 2015-03-16 08:44:53

5

以我的情况下,我使用的相同的母版从在溶液中的不同位置。而且,由于上,参照我的CSS文件的〜(波浪号)前缀,我添加了一个回复于像这样的参考:

<%= ResolveUrl("~/css/myStyle.css") %> 
+0

谢谢,这对我工作,但你知道使用<%= ResolveUrl(“〜/ xxx”)%>有什么缺点吗? – curiousBoy 2015-07-20 23:01:03