ASP.NET 2.0 Ajax中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX
版本为AJAX November CTP。
三个示例分别为:
1 带参数的WS方法
2 不带参数的WS方法
3 参数类型为DataTable的WS方法
一、WebMethod
注意要点:
1 WebMethod类需要添加命名空间 Microsoft.Web.Script.Services,此空间需要引用Microsoft.Web.Preview.dll
2 类声明加入标签 [ScriptService]
3 在Asp.net 2.0里可以直接用DataTable作为返回类型了,但是需要在Web.config文件添加序列化转换器的属性。DataSet、DataTable、DataRow均有转换器
< system.web.extensions>
< scripting>
< webServices>
< jsonSerialization>
< converters>
< add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview"/>
< add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview"/>
< add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview"/>
< /converters>
< /jsonSerialization>
< /webServices>
< /scripting>
< /system.web.extensions>
|
WEB服务1:WS1
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;
using System.Data;
/**////
/// WS1 的摘要说明
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS1 : System.Web.Services.WebService {
public WS1 () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string ServerTime()
{
return String.Format("now: {0}", DateTime.Now);
}
[WebMethod]
public DataTable GetDataTable()
{
DataTable dt = new DataTable("Person");
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("LastName", typeof(string)));
dt.Columns.Add(new DataColumn("Email", typeof(string)));
dt.Rows.Add("kui", "he", "hekui168@163.com");
dt.Rows.Add("ren", "chao", "chaoren888@163.com");
return dt;
}
}
|
WEB服务2:WS
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using Microsoft.Web.Script.Services;
/**////
/// WS 的摘要说明
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WS : System.Web.Services.WebService {
public WS () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(String query)
{
string inputString = Server.HtmlEncode(query);
if (!String.IsNullOrEmpty(inputString))
{
return String.Format("hello, {0}. ", inputString);
}
else
{
return "query string is null or empty";
}
}
}
|
二、前台页面:
注意要点:
需要使用的后台WebService的方法均设置在如下位置
Default页面:
三、JavaScript程序:
注意要点:
AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"("),而AJAX December CTP 支持以下方法转换“Sys.Preview.Data.DataTable.parseFromJson(result)”
function dd()
{
WS.HelloWorld(
'hekui',
function(result)
{
alert(result);
}
);
WS1.ServerTime(
function(result)
{
alert(result);
var divTime = document.getElementById("time");
divTime.innerHTML = result;
}
);
WS1.GetDataTable(
function(result)
{
// 获取到下拉框控件
var List = document.getElementById("ddl1");
//AJAX November CTP 需要用 eval() 方法将其转换成一个DataTable对象(并且要裁掉最前面的"(")
var Text= result.dataArray.substring(0,result.dataArray.length -1);
var Table = eval( Text);
//AJAX December CTP 支持以下方法转换
// var Table = Sys.Preview.Data.DataTable.parseFromJson(result);
//清除下拉框原有列表项
for (x=List.options.length-1; x > -1; x--)
{
List.remove(0);
}
//从获取的DataTable添加数据到下拉框列表项
for (x=0; x < Table.length; x++ )
{
//获取每一行
var Row = Table[x];
//创建一个列表项
var option = document.createElement("option");
//列表项显示文本赋值
option.text = Row.Name + " " + Row.LastName;
//列表项选项值赋值
option.value = Row.Email;
//判断浏览器类型,进行项目添加
if ( window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
List.add(option);
else
List.add(option, null);
}
}
);
}
|
分享到:
相关推荐
在本项目中,“asp.net2.0 调用websevice 实现天气预报”,我们将探讨如何利用ASP.NET 2.0集成Web服务(Web Service)来获取并展示实时天气信息,从而实现一个无刷新的天气预报应用。 首先,Web服务是一种基于XML的...
通过这个“ASP.NET 2.0全程指南”的源代码学习,读者不仅可以了解ASP.NET 2.0的基础知识,还能深入理解Web Forms的开发模式,掌握数据绑定、用户认证、角色管理、AJAX技术以及配置和部署的实践方法。对于想要提升ASP...
ASP.NET 类库中添加 WebService 引用出现问题解决方法 在 ASP.NET 编程中,添加 WebService 引用的问题是常见的错误之一。本文将详细介绍在 ASP.NET 类库中添加 WebService 引用的解决方法,并对相关的知识点进行...
本文为 ASP.NET 开发者提供了一种简单而有效的方法来实现定时调用 WebService 服务,并且还介绍了使用 jQuery 和 Ajax 调用 WebService 服务的方法。 知识点: * 使用 System.Timers.Timer 组件来实现定时调用 ...
在Asp.net开发中,有时候我们需要在客户端与服务器端之间进行异步通信,这时Web服务(Web Service)和Ajax技术就显得尤为重要。本示例主要介绍如何在Asp.net环境中,利用ScriptManager组件来调用Web服务,实现客户端...
通过在ASP.NET页面中添加UpdatePanel,并配置触发器,我们可以实现后台方法的AJAX调用。例如,一个简单的ASP.NET AJAX调用aspx页面的方法可能如下: ```asp.net <asp:ScriptManager ID="ScriptManager1" runat=...
在客户端访问WebService时,ASP.NET AJAX利用ScriptManager控件来注册WebService,并生成JavaScript代理,使得在JavaScript中可以方便地调用WebService的方法。 课程中可能会涵盖以下关键知识点: 1. **创建...
本篇文章将深入探讨如何在ASP.NET中手写AJAX调用后台方法。 首先,理解AJAX的核心原理是关键。它允许浏览器异步与服务器通信,无需刷新整个页面即可获取或更新数据。在ASP.NET中,我们可以利用JavaScript库,如...
在ASP.NET中,jQuery调用WebService进行异步通信时,主要通过jQuery的ajax方法实现。处理返回结果的关键在于理解返回数据的类型和对应的处理方式。对于返回字符串、数组或复杂对象,WebMethod可以通过设置不同的返回...
`CH5`和`CH6`可能涉及更复杂的AJAX功能,比如使用WebService或PageMethods进行服务器端调用,以及自定义控件和扩展AJAX功能的方法。 `BuildDemo.bat`是一个批处理文件,可能用于自动构建和运行这些示例,这对于快速...
本示例主要展示了如何在C#中创建一个简单的Web服务,并利用jQuery进行调用,以及如何返回自定义的JSON数据,而非依赖ASP.NET默认的`{d:content}`格式。 首先,创建一个新的ASP.NET Web服务项目。在Visual Studio中...
**jQuery访问WebService**:jQuery的$.ajax()方法是与ASP.NET WebService进行交互的主要工具。Web Service通常是以.asmx为扩展名的文件,提供XML或JSON格式的数据。通过设置URL、type(GET或POST)、dataType(如...
2. 在这个示例中,主要使用了ASP.NET AJAX的控件工具包(AjaxControlToolkit),这是一个包含多种服务器控件和客户端脚本库的集合,简化了实现AJAX功能的过程。`cc1:CascadingDropDown`控件是这个工具包的一部分,...
标题中的“一个基于AJAX +ASP.NET 实现的客户端调用后台WebService服务方法程序代码”表明这个项目是关于使用AJAX技术与ASP.NET框架结合,实现在网页端无刷新地调用后台Web服务的方法。AJAX(Asynchronous ...
.NET中的Web Services可以与Ajax无缝集成,通过定义ASMX或WCF服务,开发者可以创建可调用的服务端方法,供Ajax请求调用,实现数据的异步交换。 **Chapter 8: JSON与Ajax** JSON(JavaScript Object Notation)是...
在.NET项目中,利用JavaScript(JS)调用Web Service连接数据库是一种常见的前后端交互方式,尤其是在构建Web应用程序时。这个项目展示了如何通过JS与后台的Web Service进行通信,实现用户登录、信息查询、列表显示...
总结,通过jQuery调用.NET Framework 3.5的Web服务并接收JSON数据,开发者可以轻松地构建富客户端应用程序。理解这些概念和技术,对于构建高效、可维护的Web应用程序至关重要。记得在实践中不断学习和优化,以适应...
总结,jQuery与ASP.NET的AJAX异步通信提供了灵活、高效的方式来实现前后端数据交换,无论是在传统的aspx.cs页面、WebService、HttpHandler,还是现代的MVC或Web API框架中。掌握这些技术,可以提升你的Web应用性能,...
ASP.NET中,可以使用`System.Web.Services.Protocols.SoapHttpClientProtocol`派生类来调用WebService。创建一个类,继承自`SoapHttpClientProtocol`,然后指定WebService的URL和命名空间,就可以调用Web方法了。 ...
8. 调用WebService方法:通过示例展示如何从客户端调用WebService中的服务端方法,实现数据的远程获取或处理。 9. 错误回调处理:学习如何处理客户端的错误回调,确保程序在出现错误时有适当的反馈机制。 10. ...