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" }

MVC 3 JsonResult没有d属性

试试这个

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请求,那么是的,你必须手动包装你的数组。