解析ActionResult子類JsonResult


前言

       MVC我是11開始使用的,當時還是在上地軟件園一小型互聯網公司,當時是MVC2.0+Linq to sql。后來接着學習MVC3,MVC3的出現確實讓我有種眼前一亮的感覺,期間我不斷的寫各種demo,一直到現在再看MVC時就有點生疏了,有一年多沒用了,好多知識很細節都遺忘了。

 

看到同事的代碼

 

       前幾天看到同事的代碼, 其中看到了他對Json的用法,大致思路就是從數據庫返回結果集,然后用自定義JsonHelper把結果集處理成Json字符串返回給客戶端使用。也就是說把json字符串放入 return Json(strJson);

      

       看完就覺的不對勁,MVC Json是這樣用? 那么大家都知道JsonResult內部其實是使用JavaScriptSerializer 來序列化結果集的, 也就是說你直接把結果集扔進去,返回給客戶端就已經是Json對象了,不需要你再手動處理,實在是多此一舉。

 

正確使用

public JsonResult GetAllStudents()
        {
            var students = new List<Student>
            {
                new Student(){ID  =1,Name = "張三",Age =20, Birthday = DateTime.Now},
                new Student(){ID  =2,Name = "李四",Age =20, Birthday = DateTime.Now}
            };

            var result = new JsonResult();
            result.Data = students;
            result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
            return result;

        }


JsonResult對日期類型的序列化

    想到這一步時以前也遇到過沒去探究, 昨兒一個同事問我這個問題,以前的做法都是在js中直接處理,這樣就是麻煩些,后續用到日期的地方都需要在js中處理, 那么現在的解決方法就是自己重寫JsonResult, 然后使用Newtonsoft.Json來自己定義日期格式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM