ASP.NET でカスタム スクリプト コントロールを作成しています。
コントロールの目的は、javascript ファイルをロードするために使用されるタグの単なるサーバー バリアントです。ただし、このコントロールの主な目的は、複数のスクリプトを 1 つの応答に結合して、クライアント側で各場所のタグのようなものを確認することです。 DocumentTop の場所に登録されたスクリプトは、場所「インライン」を除いて 1 つのタグに結合されます。すべてのインライン スクリプトは、マークアップに存在する場所で個別にレンダリングされます。実際の処理を行う httphandler js.ashx も作成しましたスクリプトの結合
「ヘッド」の場所を除いてすべて正常に機能しています。2 つのドキュメントの場所については、プリレンダリング中に ClientScriptManager を使用するだけですが、ヘッドの場所については、プリレンダリング中に次のコードを試しました
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 フェーズ中に変更できません。
カスタム コントロール内からページ ヘッダーにコントロールを追加する方法を知っている人はいますか?
ちなみに、このコントロールは、ネストされた 2 つのマスターがあり、ルート マスターに ScriptManager が登録されているコンテンツ ページで使用されます。プロジェクトはasp.net 3.5 Webアプリケーションプロジェクトです