无论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就可以了