標籤:class blog http com get 使用
表示一個類,該類用於將 JSON 格式的內容發送到響應。
ContentEncoding:編碼格式(最好按標準utf-8)
ContentType: mime類型
Data:資料設定
JsonRequestBehavior:請求類型,該值指示是否允許來自用戶端的 HTTP GET 請求,枚舉
MaxJsonLength:擷取或設定資料的最大長度。
RecursionLimit:擷取或設定遞迴限制
這麼篇文章階層畫的挺好的(原文:http://www.cnblogs.com/celery94/archive/2011/01/12/1933541.html)
這個類其實就是,mvc為我們封裝的伺服器端的方便使用json與用戶端互動的類,而我們往往不直接使用該類,而是由Controller提供了一個更簡化的操作類。
好了直接看後一個方法
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)