我正在使用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 Serialization: How to control the property names?一样使用DataContractSerializer 因为我使用EF 5.x并且每次更新模型和.tt文件运行时它都会覆盖我的更改,并且它会在我不想要的所有视图上使用此修改后的属性。
那么有什么方法可以在我序列化它或者一旦我使用jquery进入客户端时重命名这个?
答案 0 :(得分: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" }
...
]