将内容添加到site.master控件

本文关键字:site master 控件 添加 | 更新日期: 2023-09-27 18:22:37

我有一个母版页文件,我总是使用Page.Header.Controls.Add等实用地添加额外的样式表。但我们有一个客户希望将css文件放在特定的位置,所以我注意到在head部分有一个
<asp:ContentPlaceHolder ID="HeadContent" runat="server">

所以我想我可以把它加进去。

我试过

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

但是什么都没有出现,有人能帮忙吗?

将内容添加到site.master控件

U可以这样添加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); 

查看此问题的答案:https://stackoverflow.com/a/2969360/1372321

它似乎可以做你想做的事:)

更新

若要在标头中的特定位置添加内容,并且您正在使用.Net 4.5,则可以使用System.Web.优化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>

然后,您可以简单地通过程序将链接控件添加到占位符中。