• asp.net ajax1.0 使用js调用webSerivce


    看了一个使用asp.net ajax1.0中使用js调用webserivce的方法。感觉很简单。可能以后会用到。

    使用原来默认的web.config因为其中有这样的代码段:

    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.asmx"/>    <add verb="*" path="*.asmx"      type="System.Web.Script.Services.ScriptHandlerFactory"       validate="false"/>
      </httpHandlers>
    <system.web>

    然后新建一个webserivce页面。这都没什么说的拉。其中命名空间添加这个:

    using System.Web.Script.Services;

    还有对类使用这样的属性[ScriptService]。添加在类名前面;其他方法都一样添加[webmethod]就ok。

    新建立一个aspx页面。添加这个

     <asp:ScriptManager ID="SM1" runat=server>
            <Services>
                <asp:ServiceReference Path="Service.asmx" />
            </Services>
        </asp:ScriptManager>。

    然后在页面直接写js代码

    <script language=javascript>
            function aa()
            {
                Service.HelloWorld2(document.getElementById('txt').value,callback);//直接类名.方法和方法里面的参数。我的helloWorld2里面只有一个参数。后面的那个callback是异步回调的方法。就是异步来实现方法。很像ajaxpro.dll.和ajax.dll啊
            }
            function callback(res)
            {
                document.getElementById('a').innerHTML = res;
            }
        </script>

    再看看异常处理。

    上面的方法。类名.方法名(参数,异步回调方法)其实我看目前有两个异步回调方法。一个是执行成功的方法。一个是执行错误的方法。如果只写一个方法的话默认就是执行成功的方法。所以我们前面的那个callback方法只有执行成功的方法。可以在callback后面再写一个执行失败的方法faildCB

    代码这样。看了就明白

    function faildCB(error)
            {
                
                var stackTrace = error.get_stackTrace();
                var message = error.get_message();
                var statusCode = error.get_statusCode();
                var exceptionType = error.get_exceptionType();
                var timedout = error.get_timedOut();
              
                // 把错误信息输出来

                var RsltElem =   document.getElementById("divD");
                RsltElem.innerHTML =
                    "Stack Trace: " +  stackTrace + "<br/>" +
                    "Service Error: " + message + "<br/>" +
                    "Status Code: " + statusCode + "<br/>" +
                    "Exception Type: " + exceptionType + "<br/>" +
                    "Timedout: " + timedout;

            }

    本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

  • 相关阅读:
    es reason=Fielddata is disabled on text fields by default.
    macOS安装使用youget
    多账户拉取
    golang 基础笔记二
    PLI是什么
    Delphi 11.1 在FMX Image上画图遇到坑
    kbmMW 5.19 Debug状态编译的Android应用闪退的原因
    Delphi 11.1 用原生TBase64Encoding将图片文件转换成Base64串
    Unknown picture file extension (.jpg)
    Java中 DecimalFormat 用法详解
  • 原文地址:https://www.cnblogs.com/zjypp/p/2319478.html
Copyright © 2020-2023  润新知