我有一个母版页文件,我总是使用Page.Header.Controls.Add
等实际添加其他样式表。但是我们有一个客户端想要在特定的地方使用css文件,所以我注意到在head部分那里是一个
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
所以我想我可以把它添加到那里。
我试过了
ContentPlaceHolder blar = (ContentPlaceHolder)Master.FindControl("HeadContent");
blar.Controls.Add(css);
但是什么都没有出现,有人可以帮忙吗?
答案 0 :(得分: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);
答案 1 :(得分: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>
然后,您只需以编程方式将链接控件添加到占位符。