首先,如果在應用了MasterPage的頁面<asp:Content〉標籤外部添加<link>標籤引用CSS檔案,會造成編譯錯誤。如果在<asp:Content〉標籤內引用CSS檔案,會造成解釋錯誤.在MasterPage的<head>標籤中引用CSS檔案,會導致所有應用了該MasterPage的頁面全部引用了該CSS檔案,同時會造成一些微妙的引用路徑問題。那麼如果想讓應用了MasterPage的頁面引用自己的CSS檔案,有這樣一種解決方案——使用一個自訂控制項,負責向<head>標籤寫入引用CSS檔案的<link>標籤,具體可以看一下木野狐的一篇文章ASP.NET 2.0 中配合 Master Page 使用的最佳化 CSS 模型。
另外,相對於這種方法,還有一種簡單的Hack,首先在MasterPage中添加<link>標籤,但是herf屬性為空白<head runat="server">
<link id="cssStyleSheet1" rel="stylesheet" type="text/css" runat="server" />
<link id="cssStyleSheet2" rel="stylesheet" type="text/css" runat="server" />
<link id="cssStyleSheet3" rel="stylesheet" type="text/css" runat="server" />
</head>
數量只能寒一個了……如果不知道用多少,還是多放幾個好了。然後在應用了MasterPage的頁面裡動態修改<link>標籤的herf屬性protected void Page_Init(object sender, EventArgs e) {
if (!IsPostBack) {
HtmlLink csslink = (HtmlLink)Master.FindControl("cssStyleSheet1");
csslink.Attributes.Add("href","Cart.css");
}
}
目前我發現的辦法就只有這兩種了,如果各位還有什麼好的辦法,懇請告訴小弟,目前正在弄一個涉及這個問題的應用
PS.園子是不是有個bug?突然發現,到首頁了……似乎發到別的分類的,再編輯預設分類就變首頁了……-_-bb