1、 return Json() 用来把对象序列化后变成json 返回【字符串也是一个对象,但是通过这种序列化后还是一个字符串,并不会解析它的内容,所以返回的还是字符串形式而不是json形式】
return Content() 参数只能是字符串类型,它是专门用来把json格式的字符串解析成json对象的。【如果要返回一个普通的非json格式的字符串 用这两种方法都可以 ,但是一般还是用 return Content】.例子如下:
控制器中 如果要返回Json格式结果 ,如果程序中得到的是一个对象 用 return Json(); 返回序列化的对象
网路请求中返回的是:[{"Name":"张三","Age":15},{"Name":"李四","Age":16}]
但是 ,如果是手拼的字符串格式的json【已经是json格式】 就要用return content(); 返回
而不能用return json () 返回
例如 程序中字符串为 string str="[{\"Name\":\"张三\",\"Age\":15},{\"Name\":\"李四\",\"Age\":16}]"; 如果用return json() 返回的还是"[{\"Name\":\"张三\",\"Age\":15},{\"Name\":\"李四\",\"Age\":16}]";
【有外面的引号 有反斜线】这时候前台需要JSON.parse() 转化一下才能用
但是如果字用 return content();返回 那么久变成了[{"Name":"张三","Age":15},{"Name":"李四","Age":16}] 不需要序列化即可使用
2、默认控制器中返回json的时候的return Json();方法是不允许get请求 只允许post请求的 ,如果需要允许post请求 ,需要加第二个参数 JsonRequestBehavior.AllowGet