繁体   English   中英

Page.Header.Controls.Add(control)将控件添加到<body>而不是<head>

[英]Page.Header.Controls.Add(control) is adding controls to <body> not <head>

我正在尝试在运行时向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页面中,head具有runat="server"属性集。

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

头元素可能对内容的类型有限制。 当我们将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);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM