如何在 ASP.NET 网页中实现回调
来源:互联网 发布:电商供应链优化 编辑:程序博客网 时间:2024/06/06 07:07
在客户端回调中,客户端脚本函数会向 ASP.NET 网页发送请求,该网页随后会运行其正常生命周期的简化版本以处理该回调。若要确保回调事件源于预期的用户界面 (UI),可以对回调进行验证。在回调验证中,应先在网页呈现过程中注册要验证的事件,然后在回调过程中对该事件进行验证。有关回调的概述,请参见在 ASP.NET 网页中不经过回发而实现客户端回调。
实现 ICallBackEventHandler 接口
对于单文件页或用户控件,可使用该页中的 @ Implements 指令实现 ICallbackEventHandler 接口,如下面的示例所示。
Visual Basic复制代码<%@ Page Language="VB" %><%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
C#复制代码<%@ Page Language="C#" %><%@ Implements Interface="System.Web.UI.ICallbackEventHandler" %>
注意 如果使用的是代码隐藏页模型,则可以实现分部类的 ICallbackEventHandler 接口。
实现 ICallbackEventHandler 接口的 RaiseCallbackEvent 方法。RaiseCallbackEvent 方法采用表示事件参数的单个参数,如下面的示例所示。
Visual Basic复制代码Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEventEnd Sub
C#复制代码public void RaiseCallbackEvent(String eventArgument){ }
实现 ICallbackEventHandler 接口的 GetCallbackResult 方法。GetCallbackResult 方法不使用任何参数,它将返回一个表示回调结果的字符串。在下面的示例中,将返回一个名为 returnValue 的字符串。
Visual Basic复制代码Public Function GetCallbackResult() _As String Implements _System.Web.UI.ICallbackEventHandler.GetCallbackResult Return returnValueEnd Function
C#复制代码public String GetCallbackResult(){ return returnValue;}
注册回调以进行事件验证
重写 Page 类的 Render 方法,并使用 ClientScriptManager 类的 RegisterForEventValidation 方法注册要验证的事件。可以使用 Page 类的 ClientScript 属性获取对 ClientScriptManager 类的引用。在下面的示例中,将注册一个名为 Callback1 的回调以进行事件验证。
Visual Basic复制代码Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter) Page.ClientScript.RegisterForEventValidation("ClientCallback1") MyBase.Render(writer) End Sub
C#复制代码protected override void Render(HtmlTextWriter writer){ Page.ClientScript.RegisterForEventValidation("ClientCallback1"); base.Render(writer);}
验证回调并返回回调结果
在 RaiseCallbackEvent 方法中,使用 ClientScriptManager 类的 ValidateEvent 方法来验证事件。使用的方法签名应与在注册要验证的事件时使用的方法签名相同。在下面的示例中,使用的是采用一个参数的方法签名。
Visual Basic复制代码Public Sub RaiseCallbackEvent(ByVal eventArgument As String) _Implements System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent Try Page.ClientScript.ValidateEvent("ClientCallback1") ' Callback logic goes here. returnValue = "callback result" Catch ' Failed callback validation logic. End TryEnd Sub
C#复制代码public void RaiseCallbackEvent(String eventArgument){ try { Page.ClientScript.ValidateEvent("ClientCallback1"); // Callback logic goes here. returnValue = "callback result"; } catch { // Failed callback validation logic. } }
如果验证通过,则代码将继续使用回调事件逻辑。在 RaiseCallbackEvent 方法完成后,将调用 GetCallbackResult 方法,以便将回调结果以字符串的形式返回给客户端脚本函数。
有关创建和实现客户端脚本函数以支持客户端回调的更多信息,请参见在 ASP.NET 网页中不经过回发而实现客户端回调和具有验证实现的客户端回调示例。
- 如何在 ASP.NET 网页中实现回调
- 如何:在 ASP.NET 网页中实现回调
- 在 ASP.NET 网页中不经过回发而实现客户端回调 [转MSDN]
- 在ASP.NET 网页中不经过回发而实现客户端回调
- 在 ASP.NET 网页中不经过回发而实现客户端回调
- 如何:在 ASP.NET(c#) 网页中检测浏览器类型
- 如何:在 ASP.NET(c#) 网页中检测浏览器类型
- 在asp.net网页中实现tabPage功能(上)
- 在asp.net网页中实现tabPage功能(下)
- 在 ASP.NET 网页中不经过回发而实现客户端回调(附Gridview无刷新代码)
- 学习笔记(1)在 ASP.NET 网页中不经过回发而实现客户端回调
- 如何在.net中实现动态改变网页标题
- ASP.NET实现在服务器控制网页
- ASP.NET实现在服务器端控制网页
- 如何在ASP.NET中实现类似MessageBox.Show()
- 在Asp.net中如何实现弹出提示对话框
- 在Asp.net中如何实现弹出提示对话框()
- 在Asp.net中如何实现弹出提示对话框
- HTC使用第一周 05-09~~~05-15
- 模拟器1.5 :Avd 创建,adb 命令攻略
- 胡说八道
- 2010上海国际数字信息化教育技术与装备展览会
- Visual Studio Team System - Unit Test
- 如何在 ASP.NET 网页中实现回调
- Android源代码简要分析
- 如何:在 ASP.NET 网页中实现回调
- HTTP协议详解(真的很经典)
- 腾讯面试小总结
- 客户端回调实现 (C#) 示例
- Hibernate性能优化技巧
- 最新收藏DNF免费外挂网
- 谁知到如何让CSDN积分变高啊?