2010-10-25 79 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