MVC3中有没有办法设置Json函数输出的属性?
即。我的模型上的属性有一个属性,告诉Json函数不输出它们。
答案 0 :(得分:6)
看起来ScriptIgnoreAttribute会做你想要的。只需装饰你不想用它序列化的任何属性。
答案 1 :(得分:1)
使用匿名方法:
所以而不是
return Json(it);
DO
return Json(new {
it.Name,
CreatedAt = it.CreatedAt.ToString("D")
// And so on...
});
这样您就可以向Web显式发布(映射)属性集,从而确保只能从JSON访问允许的属性。
如果您不想重复自己,可以使用JSON.NET序列化程序,您可以使用该序列化程序自定义对象的序列化方式。 (因此,您可以创建自定义HideAttribute
并将其考虑在内)。
使用JSON.NET,您还需要编写Controller.Json
方法替换(SmartJson
左右)。但我想这不应该是一个问题。