假設我們要從服務器端獲取一個文章列表,並把文章條目顯示在頁面中,而加載的過程要用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("......")。本文到此結束!