`
isiqi
  • 浏览: 16484589 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

asp.net ajax框架使用技巧之一

阅读更多

一、改变服务器端方法在客户端相对应的方法名称
在开发中,可能会遇到这样的问题:服务器端公开了两个方法,其中一个方法是对另一个方法的重载。也就是有这两个方法的名称是相同的,只是方法签名不一样。此时,我们会发现,尽管服务器公开了两个方法,但我们只能使用其中的某一个,当查看自动生成的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框架剖析

    ASP.NET AJAX框架是微软针对AJAX(Asynchronous JavaScript and XML)技术开发的一个全面的Web开发框架,旨在提供一个高效、易于使用的开发环境,以创建以用户为中心的Web应用程序。该框架于2007年1月正式发布,作为...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 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 AJAX框架是微软提供的一种用于构建富交互Web应用程序的技术,它允许开发者在不刷新整个页面的情况下更新网页的特定部分,提高用户体验。本教程详细介绍了ASP.NET AJAX框架的关键组件和用法,涵盖了一系列...

    ASP.NET Ajax框架与组件

    - **AjaxLibrary类库(客户端)**:这是ASP.NET Ajax框架的核心组成部分之一,包含了用于处理Ajax请求的JavaScript库。该库提供了一系列的方法和对象,用于处理客户端与服务器之间的异步通信。 - **ASP.NET 2.0 Ajax...

    ASP.NET AJAX框架安装包

    ASP.NET AJAX框架安装包,包括ASP.NET 2.0 AJAX Extensions 以及 ASP.NET AJAX Futures CTP 包,在VS2005上安装这两个包后可以获得丰富的服务器端控件。

    ASP.NET 2.0 Ajax程序设计——第II卷书中代码2

    本卷侧重分析ASP.NET AJAX框架的客户端部分,包括对JavaScript 在面向对象、DOM 操作方面的扩展、ASP.NET AJAX 客户端组件、ASP.NET AJAX XML脚本等,还介绍了ASP.NET AJAX 框架为开发者在客户端用JavaScript 与...

    ASP.NET Ajax框架教程

    应用场景代码示例(1)ScriptManager控件示例(2)UpdatePanel控件示例(3)UpdateProgress控件示例(4) Timer控件示例(5) Ajax中新Validators控件用法示例。。。。。。等,教程是基础是郑健老师的。。。内附有...

    完全手册:ASP.net.Ajax电子教程

    ASP.NET AJAX框架** - **System.Web.Extensions**:这是ASP.NET AJAX的核心组件,提供了服务器端和客户端的类库,包括UpdatePanel、ScriptManager和Timer控件等。 - **UpdatePanel**:此控件允许开发者创建局部...

    ASP.NET Ajax程序设计 源码 免费

    在ASP.NET框架中,AJAX扩展了传统的Web开发模式,允许开发者创建部分页面更新,而不是整个页面刷新,从而提升了用户体验。本资源包含了ASP.NET AJAX程序设计的源码,这对学习和理解这一技术具有极大的帮助。 首先,...

    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框架教程(附源码实例)

    ASP.NET AJAX框架是微软开发的一款用于构建富交互式Web应用程序的技术,它允许开发者在不刷新整个页面的情况下更新页面部分,从而提供更流畅、更快速的用户体验。本教程由郑健编写,旨在帮助开发者深入理解并熟练...

    asp.net ajax 1.0

    总的来说,ASP.NET AJAX 1.0是.NET框架中的一个重要里程碑,它极大地改变了Web开发的方式,使得Web应用变得更加动态和用户友好。通过深入理解和使用这个技术,开发者能够创建出更具吸引力和交互性的Web应用。

    asp.net ajax一个实例

    ASP.NET AJAX(Asynchronous JavaScript and XML)是一种技术框架,它扩展了Microsoft的ASP.NET平台,引入了异步交互和丰富的用户体验。在这个实例中,我们将深入探讨如何使用ASP.NET AJAX来创建一个更高效的Web应用...

    asp.net Ajax控件

    在ASP.NET中,Control Toolkit是一个包含了一系列预构建的UI控件集合,它们扩展了ASP.NET AJAX的功能,提供了易于使用的接口来实现这些高级功能。例如,Rating控件用于创建评分系统,ValidatorCallout控件能以提示...

    ASP.NET AJAX开发电子书(pdf)

    4. **Partial Page Rendering**: ASP.NET AJAX的核心特性之一就是部分页面渲染,它通过XMLHttpRequest对象在后台与服务器通信,只更新需要更新的部分,而不是整个HTML页面。 5. **Web Services and Page Methods**:...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX 书中代码2

    本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX 书中代码4

    本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...

    ASP.NET AJAX入门系列教程

     ASP.NET AJAX是一个完整的开发框架,其服务器端编程模型相对于客户端编程模型较为简单,而且容易与现有的ASP.NET程序相结合,通常实现复杂的功能只需要在页面中拖几个控件,而不必了解深层次的工作原理,除此之外...

    ASP.NET Ajax基础

    ASP.NET AJAX 基础是开发富互联网应用程序(RIA)的关键技术之一,它允许开发者创建具有部分页面更新功能的交互式网页,提高了用户体验而无需完全刷新整个页面。在这个框架下,开发者可以利用 .NET Framework 提供的...

Global site tag (gtag.js) - Google Analytics