一尘不染

ASP.Net MVC:如何基于原始Json数据创建JsonResult

json

具有string包含以下原始Json数据(为方便起见,已将其简化):

  var MyString =  "{ 'val': 'apple' }";

如何创建一个JsonResult表示的对象MyString

我试图使用Json(object)方法。但是它将原始json数据作为字符串-逻辑上:P-处理。因此,返回的HTTP响应如下所示:

"{ 'val': 'apple' }"

而不是给定的原始Json数据:

{ 'val': 'apple' }

这是我想要实现的目标


阅读 268

收藏
2020-07-27

共1个答案

一尘不染

上的Json()方法Controller实际上是创建新的辅助方法JsonResult。如果我们查看此类*
的源代码,我们会发现它实际上并没有做太多的工作-
只需将内容类型设置为application/json,使用来序列化数据对象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具有安全隐患,在您自己的应用程序中允许这样做之前,应注意安全隐患

2020-07-27