MVC 3 JsonResult没有d属性
本文关键字:属性 没有 JsonResult MVC | 更新日期: 2023-09-27 18:12:07
我正在使用。net 3.5迁移旧代码,其中有一些返回json数据的asmx webservices。这些服务返回用"d"属性包装的json,该属性是为了安全目的在。net 3.5中引入的。
当将这些web服务移动到mvc控制器动作时,没有d属性,因为"d"属性是出于某种原因引入的安全修复。
我应该把Json结果包装在一个d属性自己还是我做错了什么?
public JsonResult GetJsonData()
{
return Json(2);
}
这个输出:2
代替:
{ "d": "2" }
试试这个
public JsonResult GetJsonData()
{
return Json(new {d = 2}, JsonRequestBehavior.AllowGet);
}
你做的一切都是对的。
我不是MVC开发团队的一员,但我认为他们决定不引入d-wrapper
是为了与其他世界兼容。
然而,他们在保护json响应方面迈出了一步。默认情况下,您不能在GET请求响应中返回Json,因此您必须在代码中添加额外的条件:
public JsonResult GetJsonData()
{
return Json(2, JsonRequestBehavior.AllowGet);
}
如果你想服务Json数组与敏感数据返回GET请求,那么是的,你必须手动包装你的数组。