【问题标题】:add content to site.master control将内容添加到 site.master 控件
【发布时间】:2013-07-14 10:31:31
【问题描述】:

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

所以我想我可以将它添加到那里。

我试过了

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

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

【问题讨论】:

  • 什么是css?你调试了吗?

标签: c# asp.net


【解决方案1】:

查看这个问题的答案: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>

然后您可以简单地以编程方式将链接控件添加到占位符。

【讨论】:

  • 我目前正在使用 Page.Header.Controls.Add() 但是将 css 放在结束 head 标记之前,我的客户希望我将 css 文件放在其他 css 文件之后和 js 之前页面上使用的文件
【解决方案2】:

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

【讨论】:

  • 是的,我就是这样,但由于某种原因,当我在渲染页面上查看源代码时,那里什么都没有
猜你喜欢
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 2011-03-20
相关资源
最近更新 更多