首先,我們應該先在項目上添加一個WEB服務(WebService.asmx),在代碼檔案(WebService.cs)中書寫代碼如下:
WebService.csusing System;
using System.Collections;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
/// <summary>
///WebService 的摘要說明
/// </summary>
///
[ScriptService]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService
{
public WebService()
{
//如果使用設計的組件,請取消注釋以下行
//InitializeComponent();
}
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]//
public int ADD(int a, int b)
{
return a + b;
}
}
最重要的是第12行, [ScriptService]加上這個後就可以用js調用WEB
Services了。還有一個地方應該注意“[ScriptService]”這個是需要命名空間的,在asp.net3.5下是System.Web.Script.Services;在2.0下沒有找到這個空間,這個希望看過的網友幫忙解釋下。下面介紹如何通過js調用這個 web Services
Default.aspx <script language="javascript">
function OnbuttonGo_click()
{
requestSimpleService = WebService.HelloWorld(
//params
OnRequestComplete //Complete event
);
return false;
}
function OnRequestComplete(result)
{
alert(result);
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="WebService.asmx" />
</Services>
</asp:ScriptManager>
<input type="button" value="調用webservice" onclick="return OnbuttonGo_click();" />html部分只要添加一個ScriptManager,ScriptManager裡面一定要加上ServiceReference引用,不然會報錯。在添加一個用戶端的按鈕調用一下click事件在事件處理中可以直接使用WEBService給的類名及方法,方法的參數列表最後應該加上一個請求完成的函數,以便在處理完成返回結果。同理,WebService裡的add方法也是可以這樣調用。可要params部分加入傳入的參數即可。
本文學習自TerryLee的ASP.NET AJAX入門系列文章
http://www.cnblogs.com/Terrylee/archive/2006/10/25/ASPNET_AJAX_ScriptManager.html
已經更新錯誤,下面是範例下載。這次是可用的了!
demo下載