Page.Header.Controls.Add(控件)正在添加控件

时间:2011-12-16 17:02:44

标签: c# asp.net sitecore

我正在尝试在运行时向head元素添加一些代码。当我在页面中的用户控件的页面加载中执行此操作时:

HtmlGenericControl hc = new HtmlGenericControl();
hc.InnerHtml = GetParameter("HeaderCode");
Page.Header.Controls.Add(hc);

控件最终在body标签中,作为第一个子元素。例如:

...
</head>
<body>
<span><meta>Test</meta></span>
...

根据我的理解,Page.Header应该是Head元素。在aspx页面中,头部设置了runat="server"属性。

知道如何将字符串注入<head>元素吗?

2 个答案:

答案 0 :(得分:8)

头元素可能对内容类型有限制。当我们将javascript注入标题时,我们使用LiteralControl进行。

例如:

Page.Header.Controls.Add(New LiteralControl("<script language='javascript' type='text/javascript'>alert('test');</script>"))

答案 1 :(得分:0)

尝试下面的代码来添加javascript,css或任何其他资源,例如元标记。我已经在我的网站上成功实现了这段代码:

HtmlGenericControl my_js = new HtmlGenericControl("script");
            my_js.Attributes["async"] = "async";
            my_js.Attributes["type"] = "text/javascript";
            my_js.Attributes["src"] = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js";
            Page.Header.Controls.Add(my_js);

您需要使用命名空间:“使用System.Web.UI.HtmlControls”来使用HtmlGenericControl。