0

私は少なくとも2日間何かを試し、これをグーグルで検索しました...しかし、何らかの理由で、RegisterClientScriptIncludeを他の人と同じように機能させることができませんか?

まず、.NET 3.5 Ajaxを使用しています...そして、ページの部分的な更新にjavascriptを含めています...次のコードを使用しています:

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "MyClientCode", script, true);

それは完全に機能し、script変数に含まれている私のjavascriptコードは、部分的な更新ごとに含まれています。

スクリプト内のjavascriptは実際には非常に広範囲であり、.jsファイルに保存したいので、論理的に.jsファイルを作成し、RegisterClientScriptIncludeを使用してインクルードしようとします...ただし、私の人生はこれを機能させる。正確なコードは次のとおりです。

ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "mytestscript", "/js/testscript.js");

testscript.jsファイルは、ページ全体の更新にのみ含まれています...つまり。ページをロードするとき、または完全なポストバックを実行するとき....ファイルを部分的な更新に含めることができません...理由がわかりません..firebugでajax POSTを表示すると、ファイルを含めるかどうかの違い...

両方のScriptManagerインクルードは、「Page_Load」のまったく同じ場所から実行されているため、部分的な更新をすべて実行する必要があります(ただし、ScriptBlockのみが実行されます)。

とにかく、..助けやアイデア、..または私がこの問題をトラブルシューティングできるさらなる方法をいただければ幸いです。

ありがとう、アンドリュー

4

1 に答える 1

1

キーは次のとおりです。

ページの一部が更新されます

後でjavascriptをロードすることはセキュリティリスクと見なされるため、最初のロード後にjavascriptをページに追加するには、特別なフープをジャンプする必要があります(Googleのインデックス作成にも悪影響を及ぼします)。

代わりに、最初のページの読み込み時にスクリプトを登録し、後でスクリプトを実行しないでください。これらのスクリプトが動的に作成される場合は、静的な部分を除外し、ページの更新から動的に返される情報を使用して呼び出すことができるメソッドとしてリファクタリングすることをお勧めします。

于 2010-03-24T16:44:21.593 に答える