Json()
onController
方法实际上是一个帮助方法,它创建一个新的JsonResult
. 如果我们查看此类*的源代码,我们可以看到它并没有真正做那么多 - 只是将内容类型设置为application/json
,使用 a 序列化您的数据对象JavaScriptSerializer
,然后将其写入结果字符串。您可以复制这个行为(减去序列化,因为您已经这样做了),ContentResult
而是从控制器返回 a 。
public ActionResult JsonData(int id) {
var jsonStringFromSomewhere = "{ 'val': 'apple' }";
// Content() creates a ContentResult just as Json() creates a JsonResult
return Content(jsonStringFromSomewhere, "application/json");
}
*从 MVC2 开始,JsonResult
如果用户发出 HTTP GET 请求(而不是 POST),也会引发异常。允许用户使用 HTTP GET 检索 JSON 具有安全隐患,在您在自己的应用程序中允许这样做之前,您应该注意这一点。