0

私はMVC c#を使用しています

public class Person
{
        public int TypeId { get; set; }
        public string Code { get; set; }

}

このオブジェクトのJSONオブジェクトを次のように再実行するコードがあります

    return Json(personCodeStore.GetBusinessCodes());

しかし、クライアント側でこれを受け取ったときに、フィールド名の名前を変更できるようにしたい

TypeId to value
Code  to text

MVC3 JSON シリアル化のような DataContractSerializer を使用したくない: プロパティ名を制御するには? 私はEF 5.xを使用しており、モデルを更新して.ttファイルを実行するたびに変更が上書きされ、不要なすべてのビューでこの変更されたプロパティが使用されるためです。

それで、シリアル化するとき、またはjqueryを使用してクライアント側にアクセスしたら、これの名前を変更できる方法はありますか?

4

1 に答える 1

3

単純に LINQ を使用して、元の結果を投影する匿名オブジェクトを返すことができます。

var businessCodes = personCodeStore.GetBusinessCodes();
return Json(businessCodes.Select(x => new 
{
    value = x.TypeId,
    text = x.Code
}));

これで、次の行に沿って何かを取得できます。

[
    { "value": 1, text = "text 1" },
    { "value": 2, text = "text 2" },
    { "value": 3, text = "text 3" }
    ...
]
于 2013-01-12T23:07:06.983 に答える