1

文字列に長い JavaScript があり、プログラムで RegisterClientScriptBlock を使用して、ページに追加します。

インテリセンスに文字列内の私の JavaScript を検出させる方法はありますか?

コード:

string Script0 =
@"
function dummy()
{
}

var PTRValues = new Array();
...
...
..
";

this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myCustomScriptBlock", Script0, true);
4

3 に答える 3

2

いいえ、JS 文字列内でインテリセンスを取得することはできません。IDE は、この特定の文字列が JS であることを認識していません。

長い場合は、*.cs ファイルに入れないでください。代わりに *.js に保存してください。本当に必要な場合は、実行時にファイルをメモリにロードし、参照する代わりに html に埋め込んで提供できます。

于 2010-02-23T22:15:36.853 に答える
0

残念ながら、これは不可能です。

最善の解決策は、コードを別の.jsファイルに配置してから、次のように記述することです。

Page.ClientScript.RegisterClientScriptBlock(
    GetType(), 
    "myCustomScriptBlock", 
    File.ReadAllText(myJSFilePath), 
    true
);

最適なパフォーマンスを得るには、一度だけ読み取ってからキャッシュに保存する必要があります。

于 2010-02-23T22:16:07.880 に答える
0

わかりました、これらの人は近づいています...コードにスクリプトを埋め込まないでください。常にリソースとして埋め込むか、プロトタイピングと開発のために ClientScript を使用して<script/>タグをレンダリングし、.js ファイルを参照します。

リストするコードにスクリプトを埋め込まない理由は多すぎます。ググってください。

あなたが求めているのは、ClientScript を介してコード ビハインドから JavaScript をレンダリングすることであり、設計時のインテリセンス サポートが必要ですか?

わかりました。インテリセンスを取得するには、何らかの.js が必要です。保守性を促進し、同期が取れなくなる可能性のある重複スクリプトを防ぐために、私が提案するアプローチは次のとおりです。

  1. という空のファイルを作成しますmyScript.js

  2. という名前のコードを含む別のスクリプトを作成しますmyScript-vsdoc.js

  3. 埋め込みリソースとしてマークし、埋め込み Web リソースmyScript-vsdoc.jsとして提供する

  4. 一方、IDE に戻り、 EMPTYファイルmyScript.jsである を指すスクリプト タグを追加します。

  5. SHIFT-CTRL-J を押してビンゴすると、埋め込みスクリプトに IntelliSense があり、埋め込みスクリプトは編集および検出可能なソース ファイルにあり、重複はありません。

それが私のやり方です。

于 2010-02-26T00:59:39.237 に答える