如何在.NET MVC中使用jQuery並返回JSON數據


假設我們要從服務器端獲取一個文章列表,並把文章條目顯示在頁面中,而加載的過程要用ajax實現,即實現異步加載。那麼我們先來完成jquery向服務器端發出ajax請求,並根據服務器響應來重組DOM從而實現文章在頁面上顯示。這裏,和.NET MVC沒有多大關係。具體的jquery代碼如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
$.ajax({
    url: '/cgi/getArtical' //請求的某個action的地址
    datatype: "json" //只有指定爲json下面纔可以直接用返回的json數據,否則要轉化
    type: 'post',
    success: function (data) {
         PutArtical(data);   //該函數中處理json格式的文章數據data;
         HideTip();   //處理完文章後關閉加載提示
    },
    beforeSend: function(){
         LoadTip("正在加載文章"); //這裏是加載過程中的等待提示,可以自己定義
    }
})

這是一個普通的jquery中ajax調用的例子,需要注意的是datatype最好指定爲json,因爲下面服務器端是直接返回json對象的,這樣success中返回的數據就直接是json對象,可以直接使用;如果不這樣指定的話也行,不過在success函數中必須先把data轉換成json對象,轉換方法是eval_r('('+data+')')。

 

.NET MVC服務器端

上面我們可以讓jquery來調用action了,那麼我們接下來就來寫這個action,並把結果以json的格式返回給jquery,具體代碼如下:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
/// <summary>
/// 返回文章列表
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
[HttpPost]
public ActionResult getArtical()
{
      List<Artical> artList = new List<Artical>();
      artList.Add(new Artical(){ Id = 1,Title = "測試文章1" });
      artList.Add(new Artical(){ Id = 2,Title = "測試文章2" });
      return Json(artList);    //MVC中可以用Json函數來將C#對象序列化成JSON對象
}

這個和以前普通的服務器代碼不同的是最後我們可以非常方便地用Json函數將C#對象序列化成JSON對象並返回給jquery,代碼十分簡潔。

 

總結

在.NET MVC中使用jquery更加方便,jquery端只要我們指定返回的數據類型(datatype)爲json就可以方便地使用服務器返回的json數據;服務器端我們可以用Json函數非常方便地將c#對象序列化成json對象而不必寫一大堆的Response.Write("......")。本文到此結束!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章