当前位置 > 首页 > Asp.net

Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)

2012-10-13 16:22:00来源:Asp.net

老话说的好:好记心不如烂笔头!

本着这原则,我把最近工作中遇到的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

[WebMethod]
public string HelloWorld ( )
{
return "Hello World 我来啦!";
}

 

$("#ButtonNO").click(function () {
var options = {
type: "POST",
url: "WS.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
$("#div_txt").text(response.d);
}
}

$.ajax(options)
})

 

说明:这是一种最基本的调用方式,由于调用数据类型设置为json,所以返回数据在response.d中

运行结果:

 

b.有参数,返回string

1 [WebMethod]
2 public string Get2 ( string value3 , int year )
3 {
4 return string.Format ( "祝福您在{0}年里:{1}" , year , value3 );
5 }
1 $("#Button2").click(function () {
2 //定义一个js类
3 //Get2方法参数名,做类的属性名称
4 var par = { value3: "心想事成,万事如意", year: 2012 };
5
6 //把对象序列化为json字符串
7 var json_str = $.toJSON(par);
8
9 var options = {
10 url: "WS.asmx/Get2",
11 type: "POST",
12 contentType: "application/json; charset=utf-8",
13 dataType: "json",
14 //由于调用类型是基于json的,所以这里传递的参数格式必须严格遵守json字符串规定
15 data: json_str,
16 success: function (response) {
17 $("#div_txt").text(response.d);
18 }
19 }
20
21 $.ajax(options)
22 })

说明:由于调用数据类型设置为json,所以传递给web服务的参数必须严格遵守json字符串格式,否则有可能会出错

$.toJSON是引用jquery.json-2.3.min.js中的一个方法,它是把一个js类转化为json字符串

参考:https://code.google.com/p/jquery-json/

 

c.返回数组

1 [WebMethod]
2 public List<double> Get_Array ( int i )
3 {
4 List<double> list = new List<double> ( );
5