天天看點

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

老話說的好:好記心不如爛筆頭!

本着這原則,我把最近工作中遇到的jquery利用ajax調用web服務的各種資料類型做了一個總結!

本文章沒有什麼高難度技術,就是記錄一下,彙總一下,以便以後需要時檢視!

本總結牽涉的資料類型,主要有:

string,int這樣的基本資料類型

ClassA這樣的自定義類

List<ClassA>這樣的集合類型

Dictionary這樣的字典類型資料

DataSet這樣的表資料類型(這種類型資料,本文提供了3種調用方式)

1.前提:項目運作環境和項目引用

本文代碼全部在vs2010下運作,所有引用如下:

jquery-1.4.1.min.js

jquery.json-2.3.min.js

Newtonsoft.Json.dll

Microsoft.Web.Preview.dll

2.代碼說明

web服務要想被ajax成功調用,請勿忘記标記上屬性:[System.Web.Script.Services.ScriptService]

各種資料類型調用代碼如下:

a.無參數,傳回string

說明:這是一種最基本的調用方式,由于調用資料類型設定為json,是以傳回資料在response.d中

運作結果:

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

b.有參數,傳回string

說明:由于調用資料類型設定為json,是以傳遞給web服務的參數必須嚴格遵守json字元串格式,否則有可能會出錯

$.toJSON是引用jquery.json-2.3.min.js中的一個方法,它是把一個js類轉化為json字元串

c.傳回數組

說明:由于傳回的是數組,是以利用$.each進行循環逐一取值

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

d.傳回自定義類

說明:傳回的值在js中也是一個類,是以用其屬性可以通路到值

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

e.傳回自定義集合類

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

f.自定義類參數調用,傳回自定義類

說明: 上面例題,我示範了2種參數形成方式,個人喜歡第2種方式,不喜歡那種字元串拼接的方式

g.自定義集合類參數調用,傳回自定義集合類

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

h.傳回Dictionary

說明:正常情況下,Dictionary Hashtable ListDictionary 這3個類型都不可以在WebService的方法中擔任參數和方法傳回值,沒想到這次jquery竟然調用成功!小小驚喜發現!

特别提示:Dictionary的鍵值必須是字元,否則會報錯

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

i.傳回DataSet

本文為DataSet示範了3種調用方式

傳回DataSet第1種方式:

Jquery利用ajax調用asp.net webservice的各種資料類型(總結篇)

說明:這種方式項目中必須引用Microsoft.Web.Preview.dll,并且在Web.config配置檔案中增加如下節點:

傳回DataSet第2種方式:

說明:由于采用的是xml格式調用,是以在傳遞參數時,就采用對象的形式

傳回DataSet第3種方式:

說明:web伺服器端我利用Newtonsoft.Json.dll裡面的JsonConvert.SerializeObject方法把DataSet序列化為json字元串

jquery用戶端我利用 $.evalJSON把傳回的json字元串再轉化為類

繼續閱讀