1

私の ASP.net C# コードには、匿名型のオブジェクトで満たされた IEnumerable コンテナーがあります (これは大まかに SQL のデータに基づいています)。

私のコードが次のようになっているとします。

var uics = entities.getData()
    .Select(x => new
        {
            id = x.id
            name = x.name
            age = x.age
        });
return Json(uics); //Serialize JSON in ASP.net MVC 3

これは非常に簡単です。これを JavaScript にシリアライズすると、それぞれに id、name、age フィールドを持つオブジェクトの配列が得られます。

私がやりたいのは、このデータを id をインデックスとして JavaScript オブジェクトにシリアル化し、各オブジェクトがそのインデックスによって参照され、フィールド name と age を持つことです。

どうすればこれを達成できますか。

4

1 に答える 1

4

を作成しIDictionary、アクションの結果として使用できます。

var uics = entities.getData()
    .ToDictionary(x => x.id, x => new { x.name, x.age });

return Json(uics); //Serialize JSON in ASP.net MVC 3

ここで使用される匿名型のプロパティ名を明示的に指定する必要はありません。コンパイラは、値を提供するために使用されるプロパティの名前にデフォルト設定するためです(どちらの場合もここでは同じです)。

于 2012-04-06T15:58:54.060 に答える