现在的位置: 首页 > 综合 > 正文

用js调用WebService简单实现

2012年09月30日 ⁄ 综合 ⁄ 共 1861字 ⁄ 字号 评论关闭

首先,我们应该先在项目上添加一个WEB服务(WebService.asmx),在代码文件(WebService.cs)中书写代码如下:

WebService.cs
using 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下载

抱歉!评论已关闭.