Ajax.NET作为成熟的Ajax平台之一,由于和.NET平台一起都是微软开发的,所以用Ajax.NET的客户端脚本来调用.NET开发的WebService将是一个很简单的事情,这是令人很兴奋的事情之一.
下面将一步一步介绍调用的过程.首先我们先用VS2008新增一个WebService,其代码如下:
- using System;
- using System.Collections;
- using System.ComponentModel;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Services;
- using System.Web.Services.Protocols;
- using System.Xml.Linq;
- namespace WebService1
- {
-
-
-
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- [ToolboxItem(false)]
-
- [System.Web.Script.Services.ScriptService]
- public class Service1 : System.Web.Services.WebService
- {
- [WebMethod]
- public string HelloWorld()
- {
- return "Hello World";
- }
- }
- }
注意,为WebService类加上属性[System.Web.Script.Services.ScriptService],它使得ASP.NET AJAX 可以从脚本中调用此 Web 服务.
然后新增一Ajax Web页面,加页面中加入对WebService的引用,就可以编写脚本代码来调用这个WebService,代码如下:
- <%&#64; Page Language&#61;"C#" AutoEventWireup&#61;"true" CodeBehind&#61;"WebForm1.aspx.cs" Inherits&#61;"WebService1.WebForm1" %>
-
- <html xmlns&#61;"http://www.w3.org/1999/xhtml" >
- <head runat&#61;"server">
- <title>无标题页title>
- <script type&#61;"text/Javascript">
-
- function CallMethod()
- {
- WebService1.Service1.HelloWorld(SucceededCallback);
- }
-
- function SucceededCallback(res)
- {
- alert(res);
- }
-
- script>
- head>
- <body>
- <form id&#61;"form1" runat&#61;"server">
- <div>
- <asp:ScriptManager ID&#61;"ScriptManager1" runat&#61;"server">
- <Services>
- <asp:ServiceReference Path&#61;"~/Service1.asmx" />
- Services>
- asp:ScriptManager>
- div>
- <input id&#61;"Button2" type&#61;"button" value&#61;"调用WebService方法" onclick&#61;"CallMethod()" />
- form>
- body>
- html>
调用方法几乎和C#的函数调用是一样的,能过命名空间&#43;类型名&#43;方法名&#43;参数的形式调用.另外我们只需要加入一个回调方法来处理调用的返回结果,对于基本类型的参数,可以直接传递,复杂的参数我使用现在流行的JSON技术来做为数据传输的载体,关于JSON技术的可以参考下面这篇文章:
JSON技术及其在 JBF for ASP.NET 的应用
另外,极致业务基础平台的BS部分就是就是使用这总JS&#43;WEBSERVER的技术,现实友好的用户界面,可以从以下地址下载到平台的免费试用版.
http://www.jeez.com.cn/jbf/