我正在ASP.NET中创建一个自定义脚本控件
该控件的目的只是作为服务器版本的<script>标记,用于加载javascript文件。但该控件的主要目的是将多个脚本组合成一个响应,因此在客户端上,他们会看到每个位置对应的<script>标记。所有在DocumentTop位置注册的脚本都将被组合成一个单独的<script>标记,除了"inline"位置外,所有内联脚本都将在标记中单独呈现。
我还创建了一个httphandler,js.ashx,用于实际合并脚本
一切工作正常,除了"Head"位置。对于两个文档位置,我仅需在prerender期间使用ClientScriptManager,但是对于"Head"位置,在prerender期间尝试了以下代码:
var scriptControl = new HtmlGenericControl("script");
scriptControl.Attributes["language"] = "javascript";
scriptControl.Attributes["type"] = "text/javascript";
scriptControl.Attributes["src"] = src;
Page.Header.Controls.Add(scriptControl);
我收到了以下错误信息: 在DataBind、Init、Load、PreRender或Unload阶段,无法修改控件集合。
有没有人知道如何在自定义控件内部向页面标题添加控件?
顺便提一下,该控件用于一个包含两个嵌套主控件和在根主控件上注册了ScriptManager的内容页。 该项目是一个asp.net 3.5 Web应用程序项目。