Ajax.NET 调用用WebService方法收藏

 Ajax.NET作为成熟的Ajax平台之一,由于和.NET平台一起都是微软开发的,所以用Ajax.NET的客户端脚本来调用.NET开发的WebService将是一个很简单的事情,这是令人很兴奋的事情之一.

    下面将一步一步介绍调用的过程.首先我们先用VS2008新增一个WebService,其代码如下:      

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Services;
  8. using System.Web.Services.Protocols;
  9. using System.Xml.Linq;
  10. namespace WebService1
  11. {
  12.     /// <summary>
  13.     /// Service1 的摘要说明
  14.     /// </summary>
  15.     [WebService(Namespace = "http://tempuri.org/")]
  16.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  17.     [ToolboxItem(false)]
  18.     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
  19.     [System.Web.Script.Services.ScriptService]
  20.     public class Service1 : System.Web.Services.WebService
  21.     {
  22.         [WebMethod]
  23.         public string HelloWorld()
  24.         {
  25.             return "Hello World";
  26.         }
  27.     }
  28. }

    注意,为WebService类加上属性[System.Web.Script.Services.ScriptService],它使得ASP.NET AJAX 可以从脚本中调用此 Web 服务.

    然后新增一Ajax Web页面,加页面中加入对WebService的引用,就可以编写脚本代码来调用这个WebService,代码如下:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebService1.WebForm1" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>无标题页</title>
  6.     <script type="text/javascript">
  7.     
  8.     function CallMethod()
  9.     {
  10.         WebService1.Service1.HelloWorld(SucceededCallback);
  11.     }
  12.     
  13.     function SucceededCallback(res)
  14.     {
  15.         alert(res);
  16.     }
  17.     
  18.     </script>
  19. </head>
  20. <body>
  21.     <form id="form1" runat="server">
  22.     <div>
  23.         <asp:ScriptManager ID="ScriptManager1" runat="server">
  24.             <Services>
  25.                 <asp:ServiceReference Path="~/Service1.asmx" />
  26.             </Services>
  27.         </asp:ScriptManager>
  28.     </div>
  29.     <input id="Button2" type="button" value="调用WebService方法" onclick="CallMethod()" />
  30.     </form>
  31. </body>
  32. </html>

    调用方法几乎和C#的函数调用是一样的,能过命名空间+类型名+方法名+参数的形式调用.另外我们只需要加入一个回调方法来处理调用的返回结果,对于基本类型的参数,可以直接传递,复杂的参数我使用现在流行的JSON技术来做为数据传输的载体,关于JSON技术的可以参考下面这篇文章:

    JSON技术及其在 JBF for ASP.NET 的应用

    另外,极致业务基础平台的BS部分就是就是使用这总JS+WEBSERVER的技术,现实友好的用户界面,可以从以下地址下载到平台的免费试用版.

    http://www.jeez.com.cn/jbf/

 

lad.li

posted @ 2009-02-22 23:14  silverPerson  阅读(278)  评论(0编辑  收藏  举报