表示一個類,該類用於將 JSON 格式的內容發送到響應。html
ContentEncoding:編碼格式(最好按標準utf-8)json
ContentType: mime類型服務器
Data:數據設置mvc
JsonRequestBehavior:請求類型,該值指示是否容許來自客戶端的 HTTP GET 請求,枚舉函數
MaxJsonLength:獲取或設置數據的最大長度。post
RecursionLimit:獲取或設置遞歸限制測試
這麼篇文章層次結構畫的挺好的(原文:http://www.cnblogs.com/celery94/archive/2011/01/12/1933541.html)編碼
這個類其實就是,mvc爲咱們封裝的服務器端的方便使用json與客戶端交互的類,而咱們每每不直接使用該類,而是由Controller提供了一個更簡化的操做類。htm
好了直接看後一個方法對象
protected internal virtual JsonResult Json(object data, string contentType, Encoding contentEncoding, JsonRequestBehavior behavior)
{
return new JsonResult { Data = data, ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior };
}
其實方法很簡單,就直接建立了一個JsonResult的對象返回了而已。
再來看看JsonResult.data的屬性,Object類型的。Json信息爲何是字符串類型 呢。
結合平時的使用,很容易咱們就能猜到,不就是方便用對象初始化器建立json對象麼。
對象初始化器,其實大膽的猜一下,對象初始化個什麼,通常就能想到,確定是編譯器或vs之類爲咱們建立了這麼個對象,只不過是內部完成的。就像匿名函數同樣,因爲名稱自動生成,咱們不知道,只能使用一次,因此稱之爲匿名吧。本質上咱們的代碼編譯完成後,生成的IL確定是相同的,只不過是編譯器爲咱們提供的一種簡便的方法(語法糖)。
從上面的圖咱們能夠很清楚的瞭解到,MS爲咱們的Action提供了一系列的返回類型,方便咱們使用,從JsonResult咱們就能夠看出,爲咱們簡化了不少東西,不用咱們再拼接json字符串等等,避免了不少錯誤,相信封裝的操做效率上也會比咱們本身寫要高很多。下面有篇每種返回類型例子的文章,小夥伴麼能夠看看,都不難。之後Action的返回類型就要用Mvc中提供的ActionResult。(遵循Mvc的標準,習慣)
(原文:http://www.cnblogs.com/key1309/p/3480617.html)
(關於對象初始化器Artech有篇不錯的文章,講的很深刻:http://www.cnblogs.com/artech/archive/2007/09/30/912166.html)
(這裏還有篇關於該Action返回JsonResult測試的文章:http://www.cnblogs.com/JustRun1983/p/3251426.html)