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
- {
- /// <summary>
- /// Service1 的摘要說明
- /// </summary>
- [WebService(Namespace = "http://tempuri.org/")]
- [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
- [ToolboxItem(false)]
- // 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消對下行的注釋。
- [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,代碼如下:
- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebService1.WebForm1" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head runat="server">
- <title>無標題頁</title>
- <script type="text/javascript">
-
- function CallMethod()
- {
- WebService1.Service1.HelloWorld(SucceededCallback);
- }
-
- function SucceededCallback(res)
- {
- alert(res);
- }
-
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <asp:ScriptManager ID="ScriptManager1" runat="server">
- <Services>
- <asp:ServiceReference Path="~/Service1.asmx" />
- </Services>
- </asp:ScriptManager>
- </div>
- <input id="Button2" type="button" value="調用WebService方法" onclick="CallMethod()" />
- </form>
- </body>
- </html>
調用方法幾乎和C#的函數調用是一樣的,能過命名空間+類型名+方法名+參數的形式調用.另外我們只需要加入一個回調方法來處理調用的返回結果,對於基本類型的參數,可以直接傳遞,複雜的參數我使用現在流行的JSON技術來做為資料轉送的載體,關於JSON技術的可以參考下面這篇文章:
JSON技術及其在 JBF for ASP.NET 的應用
另外,極致業務基礎平台的BS部分就是就是使用這總JS+WEBSERVER的技術,現實友好的使用者介面,可以從以下地址下載到平台的免費試用.
http://www.jeez.com.cn/jbf/