1

ヘッダ内のjavascriptファイルに動的にリンクしたい

<script src='<%=Global.RootPath%>js/jquery1.4.2.js' type="text/javascript"></script>
<script src='<%=Global.RootPath%>js/jquery.mousewheel-3.0.4.pack.js' type="text/javascript"></script>

しかし、私はエラーが発生しました

コントロールにコード ブロック (つまり <% ... %>) が含まれているため、Controls コレクションを変更できません。

説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細:System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

JavaScriptファイルを動的に追加したい。このエラーが発生する理由を説明してください。これを行う他の方法はありますか?

4

2 に答える 2

0

はい、これは、ヘッダーでそのようなコンテンツをレンダリングしようとしたときによくあるエラーです。

次のような代替案を実行できます。

リテラル コントロールを配置し、コード ビハインドでスクリプト行を完全にレンダリングします。

<asp:Literal runat="server" id="txtScripts" EnableViewState="false" />

コードビハインドの全行を次のようにレンダリングします

txtScripts.Text = string.Format(
"<script src='{0}js/jquery1.4.2.js' type=\"text/javascript\"></script>", Global.RootPath);

または、それらを完全に動的に作成して、ヘッダー コントロール リストに追加することもできます。

于 2012-06-02T10:59:31.627 に答える
0

JavaScript を含めるには、ドキュメントの末尾に含めることもできます。特にヘッダーに挿入する場合は、リテラル コントロールを作成し、そのテキストをスクリプト タグに設定して、Page.Headers に追加します。

于 2012-06-02T11:00:42.620 に答える