Page.Header.Controls.Add(control) 正在添加控件以<body>不<head>



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

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

控件在body标记中结束,作为第一个子元素。例如:

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

从我的理解,页。Header应该是Head元素。在aspx页面中,头部具有runat="server"属性集。

任何想法我可以注入一个字符串在<head>元素?

head元素可能对内容的类型有限制。当我们在header中注入javascript时,我们使用LiteralControl。

例如:

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

尝试下面的代码添加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);

您需要使用命名空间:"using System.Web.UI. "

最新更新