客户端访问WebService

客户端访问WebService和后台访问WebService没什么不同,注意的地方是要在ScriptManager中添加

<Services>
             <asp:ServiceReference  Path=""/>
          </Services>

path 指向服务文件,使用web服务文件时在js函数中调用相关方法。

例子:

客户端:

<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server">
          <Services>
             <asp:ServiceReference Path="~/FullType.asmx"/>
          </Services>
        </asp:ScriptManager>
        <input type="button" value="salarydouble" onclick="salaryDouble()" />
        <input type="button" value="Reversal" onclick="ReversalList([1,2,3,4,5])" />
        <input type="button" value="getEmployee" onclick="GetEmployees()" />

</div>
    <script type="text/javascript">
        function salaryDouble() {
            var employee = new Object();
            employee.FirstName = "Dan";
            employee.LastName = "Che";
            employee.Salary = 1000;

Demo1MethodChongZai.FullType.SalaryDouble(employee, SalarySuccessfully);
        }
        function SalarySuccessfully(result) {
            alert(String.format("FirstName:{0}\nLastName:{1}\nSalary:{2}\nFullName:{3}\n", result.FirstName, result.LastName, result.Salary, result.FullName));
        }
        function ReversalList(list) {
            Demo1MethodChongZai.FullType.reversalList(list,RversalSuccessfully);
        }
        function RversalSuccessfully(result) {
            alert(result);
        }
        function GetEmployees() {
            Demo1MethodChongZai.FullType.GetEmployee(employeeSuccessfully);
        }
        function employeeSuccessfully(result) {
            for (var i in result) {
                alert(String.format("result[{0}]:\nFirstName:{1}\nLastName:{2}\nSalary:{3}\nFullName:{4}",i,result[i].FirstName,result[i].LastName,result[i].Salary,result[i].FullName));
              
            }
        }
    </script>
    </form>
</body>

Web服务文件:

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

[WebMethod]
        public Employee SalaryDouble(Employee employee)
        {
            employee.Salary *= 2;
            return employee;
           
        }
        [WebMethod]
        public List<int> reversalList(List<int> list)
        {
            list.Reverse();
            return list;
        }
        [WebMethod]
        public IDictionary<string, Employee> GetEmployee()
        {
            Dictionary<string, Employee> result = new Dictionary<string, Employee>();
            Employee employee = new Employee();
            employee.FirstName = "Dan";
            employee.LastName = "Che";
            employee.Salary = 2000;
            result[employee.FullName] = employee;

Employee employee2 = new Employee();
            employee2.FirstName = "Tan";
            employee2.LastName = "Meng";
            employee2.Salary = 2000;
            result[employee2.FullName]=employee2;

return result;
           
           
         
        }
       
    }

注意:客户端访问WebService在性能方面比UpdatePanel好,UpdatePanel在性能上没有什么优势,它在postback给服务器的是整个页面,但回传的却是页面的一部分,强烈推荐使用客户端访问WebService方法。

客户端访问PageMethod
在服务器端:

1.只能在aspx.cs页面中定义
            2.只能是public static 方法
            3.要使用[WebMethod]标记
           
客户端:1.要将ScriptManager的EnablePageMethods属性改为true
           2.要页面javascrpt函数中使用PangeMethods来调用后台方法

例子:

客户端:

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
        </asp:ScriptManager>
        <input type="button" id="btnGetTime" value="getTime" onclick="getTime()" />
    </div>
    <script type="text/javascript">
        function getTime() {
            PageMethods.getDateTime(huidiao);
        }
        function huidiao(result) {
            alert(result);
        }
    </script>
    </form>

后台:

[WebMethod]
        public static DateTime getDateTime()
        {
            return DateTime.UtcNow;
        }

客户端访问WebService和PageMethod的更多相关文章

  1. C++客户端访问WebService VS2008

    VS2008及之后的版本已经不支持使用C++开发WEBService服务了,如果要在VS上开发WEBService,需要使用C#开发语言. 一.gSOAP简介 gSOAP编译工具提供了一个基于SOAP ...

  2. 问题-XE8客户端访问Webservice时报“no selected dom vendor”

    问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...

  3. axis客户端循环访问webservice的时候只发送了几条数据就断开了的问题

    原因 axis客户端访问webservice默认是使用http1.0版本的,这个版本的http不能保持长连接,应该换成http1.1版本 具体修改步骤: <?xml version=" ...

  4. ASP.NET MVC中使用ASP.NET AJAX异步访问WebService

    使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也 ...

  5. 【转】Spring的WebServiceTemplate访问WebService的方法及其本质原理

    WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML. 本文简单介绍一下如何通过Spring提供的WebServ ...

  6. ajax——client访问webservice基本用法

    学前aps.net当我学会了使用服务器端的访问webservice方法,然后实现一个样本:web server模拟网上购物,今天学习asp.net ajax的时候学习到了client直接訪问webse ...

  7. php——SoapClient访问webservice

    原文:php--SoapClient访问webservice 通过SoapClient调用天气预报 <?phpheader ( "Content-Type: text/html; ch ...

  8. SQL Server 2008 R2 根据WSDL访问WebService

    参考网站:WebService学习整理(一)——客户端三种调用方式整理 自我概括: WebService 通过HTTP通讯,数据以XML格式传输使两个系统进行数据交互 SOAP 是访问协议(注明访问W ...

  9. Android局域网访问webservice以及其中的一些问题

    应老师的要求,要做个安卓app,实现备份app上的数据到服务器上的mongodb上,网上搜了下相关的实现方式.利用webservice技术,具体来说就是客户端直接调用服务器端的接口.之前从来没接触这玩 ...

随机推荐

  1. Android小项目之八 界面细节

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  2. 解决xcode7添加启动图片不显示

    xcode7添加启动图片步骤: 在target中将Launch Screen File置为空,不使用自带的LaunchScreen.storyboard作为启动图(LaunchScreen.story ...

  3. JS 鼠标事件大全

    一般事件 事件 浏览器支持 描述 onClick HTML: 2 | 3 | 3.2 | 4 Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDb ...

  4. 【SVN】删除文件/文件夹 svn: E205007: Could not use external editor to fetch log message

    在SVN Server上删除文件/文件夹 svn delete 文件的URL -m "评论" 一定要加 -m 不然会报错 svn: E205007: Could not use e ...

  5. VMware 命令行下的网络配置

    一般我们会在windows操作系统上安装VMware虚拟机,然后在虚拟机中安装Linux或Unix系统,但是我们很多人习惯了Windows系统的图形界面,换到Linux或Unix系统下不知道怎么配置网 ...

  6. ubuntu server 系统,更换阿里云源(用户更新源)

    Ubuntu安装完毕后,默认使用的是官方的源,在国内访问速度很慢,这里介绍更换为阿里云的源方法. 步骤如下: 1.备份源配置文件 sudo cp /etc/apt/sources.list /etc/ ...

  7. OpenShare文档中心

    文档是企业重要的智力资产.在企业中,文档一般都以电子文档的形式存在,比如微软.doc格式,xls格式,ppt格式,pdf格式,纯文本.txt格式等:从内容上,可能是商务合同.会议记录.产品手册.客户资 ...

  8. (转)浅谈.NET下的多线程和并行计算(一)前言

    转载——原文地址:http://www.cnblogs.com/lovecindywang/archive/2009/12/25/1632014.html 作为一个ASP.NET开发人员,在之前的开发 ...

  9. 记录android5.0更新踩过的坑

    1. service的注册必须显示注册,不能隐式注册,相关链接http://www.eoeandroid.com/thread-568853-1-1.html 现象:Service Intent mu ...

  10. 英特尔® 实感™ SDK 架构

    英特尔® 实感™ SDK在架构上完全不同于其前代系统 — 英特尔® 感知计算 SDK. 如果您使用英特尔感知计算 SDK 进行应用开发,会很快发现,全新的 SDK 可提供增强型编程模式,从而可通过几种 ...