2013-07-16 81 views
0

我有一個母版頁文件,並且我一直使用Page.Header.Controls.Add等實用添加其他樣式表。但我們有一個客戶端需要在特定位置的css文件,所以我注意到在頭部有一個
<asp:ContentPlaceHolder ID="HeadContent" runat="server">將內容添加到site.master控件

所以我想我可以把它添加到那裏。

我已經試過

ContentPlaceHolder blar = (ContentPlaceHolder)Master.FindControl("HeadContent"); 
blar.Controls.Add(css); 

,但似乎沒有什麼,誰能幫助?

+1

什麼是'css'?你有調試過嗎? – Satpal

回答

0

你可以添加你的css文件,就像那樣;

ContentPlaceHolder blar = (ContentPlaceHolder)Master.FindControl("HeadContent"); 
HtmlLink css= new HtmlLink(); 
css.Attributes.Add("rel", "stylesheet"); 
css.Attributes.Add("type", "text/css"); 
css.Href = "/Styles/site.css"; 
blar.Controls.Add(css); 
+0

是的,我是如何擁有它,但由於某種原因,當我在呈現的頁面上查看源代碼時,什麼也沒有 –

+0

它在我的示例頁面中工作。 – CocLn

+0

DOH它正在工作,我只是去錯誤的BL ** DY頁 –

0

檢查出這個問題的答案:https://stackoverflow.com/a/2969360/1372321

它似乎你想要做什麼:)

更新

要在頭的特定位置添加內容,並且您正在使用.Net 4.5,則可以使用System.Web.Optimatization API並捆綁樣式。然後在您的腦海中,您可以使用提供的控件:

<webopt:BundleReference runat="server" Path="~/Content/css" /> 

您可以在默認的WebForms項目模板中看到此示例。

如果您使用的.Net的是舊版本,您可以在母版頁使用內容佔位符,然後將控件添加到特定的佔位符,像這樣:

在母版頁頭

<asp:ContentPlaceHolder runat="server" ID="HeadContent" /> 

在aspx頁面

<asp:Content runat="server" ContentPlaceHolderID="HeadContent"> 
    <asp:PlaceHolder runat="server" ID="placeHolderHead"></asp:PlaceHolder> 
</asp:Content> 

然後,你可以簡單地添加日e以編程方式將控件鏈接到佔位符。

+0

我目前正在使用Page.Header.Controls.Add()但是,將CSS放在關閉頭標籤之前,我的客戶希望我把在其他css文件之後和頁面上使用的js文件之前的css文件 –