2013-07-16 85 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文件 –