客户端访问WebService和PageMethod
客户端访问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的更多相关文章
- C++客户端访问WebService VS2008
VS2008及之后的版本已经不支持使用C++开发WEBService服务了,如果要在VS上开发WEBService,需要使用C#开发语言. 一.gSOAP简介 gSOAP编译工具提供了一个基于SOAP ...
- 问题-XE8客户端访问Webservice时报“no selected dom vendor”
问题现象:XE8做的客户端访问XE8做的Webservice时,客户端报“no selected dom vendor”. 问题原因:原因不明,应该是用到了XML转换等方法吧.有高手了解的,请M我. ...
- axis客户端循环访问webservice的时候只发送了几条数据就断开了的问题
原因 axis客户端访问webservice默认是使用http1.0版本的,这个版本的http不能保持长连接,应该换成http1.1版本 具体修改步骤: <?xml version=" ...
- ASP.NET MVC中使用ASP.NET AJAX异步访问WebService
使用过ASP.NET AJAX的朋友都知道,怎么通过ASP.NET AJAX在客户端访问WebService,其实在ASP.NET MVC中使用ASP.NET AJAX异步访问WebService 也 ...
- 【转】Spring的WebServiceTemplate访问WebService的方法及其本质原理
WebService客户端调用的本质就是将SAOP格式的XML通过通信协议发送到WebService的服务器端,然后接收服务器端返回的XML. 本文简单介绍一下如何通过Spring提供的WebServ ...
- ajax——client访问webservice基本用法
学前aps.net当我学会了使用服务器端的访问webservice方法,然后实现一个样本:web server模拟网上购物,今天学习asp.net ajax的时候学习到了client直接訪问webse ...
- php——SoapClient访问webservice
原文:php--SoapClient访问webservice 通过SoapClient调用天气预报 <?phpheader ( "Content-Type: text/html; ch ...
- SQL Server 2008 R2 根据WSDL访问WebService
参考网站:WebService学习整理(一)——客户端三种调用方式整理 自我概括: WebService 通过HTTP通讯,数据以XML格式传输使两个系统进行数据交互 SOAP 是访问协议(注明访问W ...
- Android局域网访问webservice以及其中的一些问题
应老师的要求,要做个安卓app,实现备份app上的数据到服务器上的mongodb上,网上搜了下相关的实现方式.利用webservice技术,具体来说就是客户端直接调用服务器端的接口.之前从来没接触这玩 ...
随机推荐
- [Java] HashMap遍历的两种方式
Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml第一种: Map map = new HashMap( ...
- 搭建第一个web项目:jasperReports+ireport制作pdf报表
一:jasperReports介绍: 在web应用中,必须面临大量的报表问题,即将数据库中的数据形成报表并进行打印.传统开发只能使用html页面设计报表,效率低且不支持别的格式.所以jasperRep ...
- Mac和Linux下测试端口是否存活一法[转载]
测试端口存活的最常用的方法是telnet $telnet 127.0.0.1 80 不过这个方法有一个不方便的地方:连接成功后会进入交互模式,需要按 ctrl + ] 和 q 才能退出. 后来,经过网 ...
- Apps Vol53
Android 內購破解 Freedom 軟件 iOS破解軟件IAPFree 能偽造UID IAPFree : 系統已經JB Cydia加入作者的軟件源 Cydia.crazydoraemon.c ...
- MySQL分区表的使用
MySQL使用分区表的好处: 1,可以把一些归类的数据放在一个分区中,可以减少服务器检查数据的数量加快查询. 2,方便维护,通过删除分区来删除老的数据. 3,分区数据可以被分布到不同的物理位置,可以做 ...
- C#操作ini
/// <summary> /// 读写INI文件的类. /// </summary> public class INIHelper { // 读写INI文件相关. [DllI ...
- NodeJS学习之异步编程
NodeJS -- 异步编程 NodeJS最大的卖点--事件机制和异步IO,对开发者并不透明 代码设计模式 异步编程有很多特有的代码设计模式,为了实现同样的功能,使用同步方式和异步方式编写代码会有很大 ...
- 我与Bootstrap
接触bootstrap是因为一个项目.实在是不了解前端.但是公司又不招前端工程师,没有办法,我这个后端工程师被赶鸭子上架了. 做这个项目之前,只是简单的在网上看了一些bootstrap教学视频.然后拿 ...
- 了解ASP.NET MVC几种ActionResult的本质:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult
在本系列的最后一篇,我们来讨论最后三个ActionResult:HttpStatusCodeResult.RedirectResult和RedirectToRouteResult .第一个用于实现针对 ...
- Eclipse中调试技巧
1.打印输出 System.outprintln(“执行了此程序"); 2.运用Log方法: 示例 Log.d("myDubug", "myFirstDebu ...