不管ViewResult仍是JsonResult都繼承ActionResult,ActionResult裏只有一個方法ExecuteResultjson
一、Controllr的Json方法app
其實是new JsonResult,而後執行ExecuteResult方法,指定了ContentType-application/json ,而後將Data序列化成字符串寫入streamspa
1.一、new JsonResult3d
你們看到JsonRequestBehavior.DenyGet這句話也就明白了(拒絕Get請求),爲何咱們在寫return Json的時候要加上這樣一句話了JsonRequestBehavior = JsonRequestBehavior.AllowGet,Controllr的Json方法其實是return JsonResult
blog
1.二、覆寫ActionResult的ExecuteResult方法
指定了ContentType-application/json ,而後將Data序列化成字符串寫入response stream繼承
因此咱們瞭解了原理後,咱們能夠隨意擴展的,只須要把數據放入response 指定好ContentType就能夠了字符串