ScriptManager调用WebService注意事项

Step 1安装ASPAJAXExtSetup.msi这个包,就不提供链接了。

Step 2:在画面上添加ScriptManger控件,控件来自于工具栏Ajax Extesions。空间内部如下。

    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/WebService.asmx" />
        </Services>
    </asp:ScriptManager>

中间的路径指向的是WebService的地址。

Step 3:在配置文件中添加节点

在<System.Web>下面添加


    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>


    Step 4:在WebService的类上添加属性[System.Web.Script.Services.ScriptService]

如:[System.Web.Script.Services.ScriptService]
public class WS: System.Web.Services.WebService {

Step 5:用JS来调用

    <script type="text/javascript" language="javascript">
        function sc(result) {
            alert(result);
        }
        function fa(ex) {
            alert("failure:" + ex.get_message());
        }

        WS.HelloWorld(sc, fa);

    </script>

说明:WS对应于我们新建的WebService的类名。HelloWorld后面的空格中,最后两个参数是成功后的回调函数和失败后的回调函数。除去这两个参数后,第一个参数开始是WebService的

HelloWorld方法中所需要的入参,如果没有,就不填,此处即没有。如果HelloWorld的定义如下

.....HelloWorld(string abc)....

则调用时应该为 WS.HelloWorld("eft",sc, fa);

多参数的场合依次类推。

原文地址:https://www.cnblogs.com/huangxue/p/2284981.html