以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』  (http://bbs.xml.org.cn/list.asp?boardid=22)
----  [原创]Ajax.NET 调用WebService方法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=65841)


--  作者:szjz
--  发布时间:8/12/2008 3:47:00 PM

--  [原创]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. 
11. namespace WebService1
12. {
13.     /// <summary>
14.     /// Service1 的摘要说明
15.     /// </summary>
16.     [WebService(Namespace = "http://tempuri.org/")]
17.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
18.     [ToolboxItem(false)]
19.     // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
20.     [System.Web.Script.Services.ScriptService]
21.     public class Service1 : System.Web.Services.WebService
22.     {
23. 
24.         [WebMethod]
25.         public string HelloWorld()
26.         {
27.             return "Hello World";
28.         }
29.     }
30. }
    注意,为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. 
3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4. 
5. <html xmlns="http://www.w3.org/1999/xhtml" >
6. <head runat="server">
7.     <title>无标题页</title>
8.     <script type="text/javascript">
9.      
10.     function CallMethod()
11.     {
12.         WebService1.Service1.HelloWorld(SucceededCallback);
13.     }
14.      
15.     function SucceededCallback(res)
16.     {
17.         alert(res);
18.     }
19.      
20.     </script>
21. </head>
22. <body>
23.     <form id="form1" runat="server">
24.     <div>
25.         <asp:ScriptManager ID="ScriptManager1" runat="server">
26.             <Services>
27.                 <asp:ServiceReference Path="~/Service1.asmx" />
28.             </Services>
29.         </asp:ScriptManager>
30.     </div>
31.     <input id="Button2" type="button" value="调用WebService方法" onclick="CallMethod()" />
32.     </form>
33. </body>
34. </html>
    调用方法几乎和C#的函数调用是一样的,能过命名空间+类型名+方法名+参数的形式调用.另外我们只需要加入一个回调方法来处理调用的返回结果,对于基本类型的参数,可以直接传递,复杂的参数我使用现在流行的JSON技术来做为数据传输的载体,关于JSON技术的可以参考下面这篇文章:
    JSON技术及其在 JBF for ASP.NET 的应用
    另外,极致业务基础平台的BS部分就是就是使用这总JS+WEBSERVER的技术,现实友好的用户界面,可以从以下地址下载到平台的免费试用版.
http://www.jeez.com.cn/upfiles/jbfsetup.rar

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms