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 回答