一、改变服务器端方法在客户端相对应的方法名称
在开发中,可能会遇到这样的问题:服务器端公开了两个方法,其中一个方法是对另一个方法的重载。也就是有这两个方法的名称是相同的,只是方法签名不一样。此时,我们会发现,尽管服务器公开了两个方法,但我们只能使用其中的某一个,当查看自动生成的JS代理时,你会发现,页面中只生成了一个方法的代理。为什么会有这样问题?
asp.net ajax框架在为服务器方法生成代理时,是以JSON字典的方式来存储方法信息的,方法名称为字典的Key,Value为方法的其它信息。当遇到两个方法名相同的方法时(即Key相同),最后一个对相同key的操作会覆盖前面对这个Key的操作,所以当生成代理是,只会有一个方法的代理会被生成。
解决这种问题的方法比较简单,即编写服务器端方法时,在WebMethod的构造器中指定将要被生成到客户端的相应方法名称即可,即
[System.Web.Services.WebMethod]
public static int GetRandom()
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next();
}
[System.Web.Services.WebMethod(MessageName="getRangRandom")]
public static int GetRandom(int begin,int end)
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next(begin,end);
}
下面是一个完整的示例:
Namespace="System.Web.UI" TagPrefix="asp" %>
[System.Web.Services.WebMethod]
public static int GetRandom()
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next();
}
[System.Web.Services.WebMethod(MessageName="getRangRandom")]
public static int GetRandom(int begin,int end)
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next(begin,end);
}
改变服务器在客户端对应的方法名称
<scriptmanager id="ScriptManager1" enablepagemethods="true" runat="server"><br></scriptmanager>
PageMethods.set_timeout(5000);
PageMethods.set_defaultFailedCallback="OnFailed";
function getRandom(begin,end)
{
if ( arguments.length != 2 )
{
PageMethods.GetRandom(OnSucceed);
}
else
{
PageMethods.getRangRandom(begin,end,OnSucceed);
}
}
function OnSucceed(Message)
{
alert(Message);
}
function OnFailed(ErrorHander)
{
var ErrorMessage = '是否超时'+ErrorHander.get_timedOut()+'\n错误信息为:' + ErrorHander.get_message();
ErrorMessage = ErrorMessage + '\n异常名称为:' + ErrorHander.get_exceptionType() + '\n错误位置为:' + ErrorHander.get_stackTrace();
alert(ErrorMessage);
}
二、改变客户端访问服务器端的方式 默认情况下,在asp.net ajax中客户端访问服务器端时使用的是HTTP POST方式,如果您想使用HTTP GET的方式来访问服务器端,即可以这样做:
[System.Web.Services.WebMethod(MessageName="getRangRandom")]
[System.Web.Script.Services.ScriptMethod(UseHttpGet=true)] public static int GetRandom(int begin,int end)
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next(begin,end);
}
这样,当客户端在调用GetRandom(int begin,int end)方法时,就是以HTTP GET的方式来调用。
三、在asp.net ajax中使用session [System.Web.Services.WebMethod(MessageName="getRangRandom")]
[System.Web.Script.Services.ScriptMethod(UseHttpGet=true)]
[System.Web.Services.WebMethod(EnableSession=true)] public static int GetRandom(int begin,int end)
{
Random random = new Random(DateTime.Now.Millisecond);
return random.Next(begin,end);
}
[System.Web.Services.WebMethod(EnableSession=true)]用于标识一个服务器方法启用session。
分享到:
相关推荐
ASP.NET AJAX框架是微软针对AJAX(Asynchronous JavaScript and XML)技术开发的一个全面的Web开发框架,旨在提供一个高效、易于使用的开发环境,以创建以用户为中心的Web应用程序。该框架于2007年1月正式发布,作为...
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
ASP.NET AJAX框架是微软提供的一种用于构建富交互Web应用程序的技术,它允许开发者在不刷新整个页面的情况下更新网页的特定部分,提高用户体验。本教程详细介绍了ASP.NET AJAX框架的关键组件和用法,涵盖了一系列...
- **AjaxLibrary类库(客户端)**:这是ASP.NET Ajax框架的核心组成部分之一,包含了用于处理Ajax请求的JavaScript库。该库提供了一系列的方法和对象,用于处理客户端与服务器之间的异步通信。 - **ASP.NET 2.0 Ajax...
ASP.NET AJAX框架安装包,包括ASP.NET 2.0 AJAX Extensions 以及 ASP.NET AJAX Futures CTP 包,在VS2005上安装这两个包后可以获得丰富的服务器端控件。
本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...
应用场景代码示例(1)ScriptManager控件示例(2)UpdatePanel控件示例(3)UpdateProgress控件示例(4) Timer控件示例(5) Ajax中新Validators控件用法示例。。。。。。等,教程是基础是郑健老师的。。。内附有...
ASP.NET AJAX框架** - **System.Web.Extensions**:这是ASP.NET AJAX的核心组件,提供了服务器端和客户端的类库,包括UpdatePanel、ScriptManager和Timer控件等。 - **UpdatePanel**:此控件允许开发者创建局部...
在ASP.NET框架中,AJAX扩展了传统的Web开发模式,允许开发者创建部分页面更新,而不是整个页面刷新,从而提升了用户体验。本资源包含了ASP.NET AJAX程序设计的源码,这对学习和理解这一技术具有极大的帮助。 首先,...
ASP.NET AJAX 框架安装文件 Welcome to the ASP.NET AJAX Control Toolkit! Included in this package: * AjaxControlToolkit - A set of sample ASP.NET AJAX controls and source * SampleWebsite - A web site ...
ASP.NET AJAX框架是微软开发的一款用于构建富交互式Web应用程序的技术,它允许开发者在不刷新整个页面的情况下更新页面部分,从而提供更流畅、更快速的用户体验。本教程由郑健编写,旨在帮助开发者深入理解并熟练...
总的来说,ASP.NET AJAX 1.0是.NET框架中的一个重要里程碑,它极大地改变了Web开发的方式,使得Web应用变得更加动态和用户友好。通过深入理解和使用这个技术,开发者能够创建出更具吸引力和交互性的Web应用。
ASP.NET AJAX(Asynchronous JavaScript and XML)是一种技术框架,它扩展了Microsoft的ASP.NET平台,引入了异步交互和丰富的用户体验。在这个实例中,我们将深入探讨如何使用ASP.NET AJAX来创建一个更高效的Web应用...
在ASP.NET中,Control Toolkit是一个包含了一系列预构建的UI控件集合,它们扩展了ASP.NET AJAX的功能,提供了易于使用的接口来实现这些高级功能。例如,Rating控件用于创建评分系统,ValidatorCallout控件能以提示...
4. **Partial Page Rendering**: ASP.NET AJAX的核心特性之一就是部分页面渲染,它通过XMLHttpRequest对象在后台与服务器通信,只更新需要更新的部分,而不是整个HTML页面。 5. **Web Services and Page Methods**:...
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...
ASP.NET AJAX是一个完整的开发框架,其服务器端编程模型相对于客户端编程模型较为简单,而且容易与现有的ASP.NET程序相结合,通常实现复杂的功能只需要在页面中拖几个控件,而不必了解深层次的工作原理,除此之外...
ASP.NET AJAX 基础是开发富互联网应用程序(RIA)的关键技术之一,它允许开发者创建具有部分页面更新功能的交互式网页,提高了用户体验而无需完全刷新整个页面。在这个框架下,开发者可以利用 .NET Framework 提供的...