.net 3.5中ajax调用webservice中方法 总结

今天看了webCast的一个 张义先老师的VS2008新特性之AJAX介绍视屏,中间讲到“ajax调用webservice中的方法”,当时张老师没有将这个Demo做出来,看完之后摸索了好久才搞明白是怎么回事,现在将经验分享给大家,希望对各位.net学习者有所帮助。

目的:在前台就用AJAX调用WebService中的方法

代码如下:

WEBSERVICE代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;

/// <summary>
///HelloService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class HelloService : System.Web.Services.WebService {

    public HelloService () {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    [WebMethod]
    [ScriptMethod]
    public string HelloWorld() {
        return "abcdefg";
    }
}

aspx代码:

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
        <asp:ServiceReference Path="~/HelloService.asmx" />
        </Services>
        </asp:ScriptManager>
        <input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
    </div>
    </form>

    <script language="javascript" type="text/javascript">

        function Button1_onclick() {
           HelloService.HelloWorld(onGetSuccess);
        }

        //正是在上面张老师犯错了。在webservice中可以看到,HelloWorld方法并没有参数,此处的参数为,当调用服务器事件成功后执行的函数

       //正是由于HelloWorld方法返回的是一个字符串的值,所以此方法有STR参数保存返回的值。
        function onGetSuccess(str) {
        alert(str);
        }

    </script>

--------- THE END --------------------

---------HFUTWYY原作----------------

原文地址:https://www.cnblogs.com/hfutwyy/p/2122194.html