2

を使用してクライアント側オブジェクトを作成するときに、Visual Studio 2010 で JavaScript Intellisense を取得する正しい方法は何JavaScriptSerializerですか?

たとえば、Recordいくつかのプロパティを持つ名前のクラスがあります。のコレクションを生成Recordsし、JavaScriptSerializer.

コードビハインド

public string JsonRecords
{
    get
    {
        var js = new System.Web.Script.Serialization.JavaScriptSerializer();
        return js.Serialize( Records );
    }
}

ASPXページ

<script>
  // mocks the Record object
  var records = [{ "Date": "", "Latitude": 0, "Longitude": 0 }];

  // sets the Record object
  records = <%= JsonRecords %>;
</script>

クラスをモックするために JS レコード変数を事前に入力Recordsすると、Visual Studio で完全な Intellisense サポートが得られます。

これは機能しますが、汚れているように感じます。より適切な方法はありますか?それとも、これは一般的な方法ですか?

4

2 に答える 2

2

JavaScriptSerializer でオブジェクトを作成するときに、Visual Studio 2010 で JavaScript Intellisense を取得する正しい方法は何ですか?

VSNext またはそのようなシナリオを可能にするパッチを待ちます。現在、javascript とサーバー側コードが混在しているシナリオでの Intellisense はサポートされていません。

于 2011-08-29T21:51:06.260 に答える
0

Javascript インテリセンスはスクリプト自体を解析することによって生成されるため、スクリプト (または参照されたスクリプト) でプロパティをインラインで定義していない限り、インテリセンスは表示されません。

IntelliSense で使用したいが、最終的には動的な構造を介して提供する予定の構造がある場合は、それらを別の .js ファイルにスタブしてから、次のようにファイルに参照タグを含めることができます。

/// <reference path="../xxx.js" />

これはクライアントではコメントとして扱われますが、コードで作業しているときに Visual Studio がそれを取得します。ミニファイアー/醜悪化者は、これらのコメントが実稼働に達する前に削除するため、パフォーマンスに影響を与えません。

于 2012-05-17T11:46:20.393 に答える