欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-10-19 22:41:46
无论ViewResult还是JsonResult都继承ActionResult,ActionResult里只有一个方法ExecuteResult 1、Controllr的Json方法 实际上是new JsonResult,然后执行ExecuteResult方法,指定了ContentType-appl ......

无论viewresult还是jsonresult都继承actionresult,actionresult里只有一个方法executeresult

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

 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
3、看源码MVC中的Controllr的Json方法

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

1.2、覆写actionresult的executeresult方法
指定了contenttype-application/json ,然后将data序列化成字符串写入response stream

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

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