3、看源码MVC中的Controllr的Json方法

无论ViewResult还是JsonResult都继承ActionResult,ActionResult里只有一个方法ExecuteResult

 1、Controllr的Json方法

实际上是new JsonResult,然后执行ExecuteResult方法,指定了ContentType-application/json ,然后将Data序列化成字符串写入stream

1.1、new JsonResult

大家看到JsonRequestBehavior.DenyGet这句话也就明白了(拒绝Get请求),为什么我们在写return Json的时候要加上这样一句话了JsonRequestBehavior = JsonRequestBehavior.AllowGet,Controllr的Json方法实际上是return JsonResult

1.2、覆写ActionResult的ExecuteResult方法
指定了ContentType-application/json ,然后将Data序列化成字符串写入response stream

所以我们了解了原理后,我们可以随意扩展的,只需要把数据放入response 指定好ContentType就可以了

 

3、看源码MVC中的Controllr的Json方法

全文结束