当前位置 > 首页 > 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


  • DayPilotCalendar:像OutLook一样的 计划任务日程表 控件,for asp.net2.0

    2007-5-10 11:13:00

    摘要: 这个控件看起来不错。 功能: 1:提供Calendar的ContextMenu,右键调出。回发处理方式多样。支持AJAX 2:视图多种:可以显示天任务,也可以显示多天的,比方说1周内的

  • Does he sleeps?

    2009-10-10 21:09:00

    I woke up early this morning and who was still up and broadcasting live his podcast recording on US

  • ASP.NET MVC com jQuery + JSON

    2009-10-22 21:50:00

    Sobre o jQuery Apesar de ser um dos mais comentados “lan?amentos” dos últimos anos, muita gente

  • 用WPF和.NET开发的下一代Yahoo Messenger

    2007-1-22 11:48:00

    【原文地址】 Next Generation Yahoo Messenger built with WPF and .NET 【原文发表日期】 Sunday, January 07, 2007

  • 聚类基本数学模型

    2009-4-11 19:19:00

    摘要: 聚类方法是一类用途非常广泛的算法,聚类包含很多各式各样的算法。所有这些算法都有它的基本数学模型。本文就简单介绍一下聚类的基本数学模型。了解了基本数学模型就了解了聚类最本质的原理。无论是学习算

  • Preventing Outlook from closing with Alt-F4

    2007-4-15 10:08:00

    I have come to the realization, at some point, that I never want to close Outlook. Really, theres n

  • using LINQ retrieve top N rows

    2009-12-27 3:07:00

    Normally to return top N rows we use an SQL statement similar to the one below Select top N

  • Asp.net MVC 3 开发一个简单的企业网站系统

    2012-12-2 21:20:00

    最近我想把我学过的一些东西进行一下整合,来验证我最近学习的效果,所以我决定做一个简单的可以实现基本功能的Asp.net MVC 3 的企业网站系统,因为我的美术功底比较差,所以界面做出来可能会很丑陋

  • [开发故事]第四回:应用反射在运行时动态获取类型信息

    2009-5-12 11:28:00

    anytao.net | 《你必须知道的.NET》网站 | Anytao技术博客 发布日期:2009.05.12 作者: Anytao ©

  • .net问题(菜鸟提问)

    2010-12-28 11:11:00

    dropdownlist 里面选中一个选项 得到 selectedValue == F00 后续需要使用的值并不是F00,而是F01,F02,F03 不知该如何写