天天看点

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字符串再转化为类

继续阅读