asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误

本以为页面很简单不会出现问题,但运行时出现了如下错误:

Page.EnableEventValidation 属性 参看了一下MSDN,获取或设置一个值,该值指示页面验证回发事件,还是验证回调事件。.NET Framework出于安全考虑需要为服务器端控件的回发和回调事件进行注册,此事件验证机制可消除未经授权的回发请求和回调带来的风险。通过此模型,控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件。默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能。

第一反应,既然启用了事件验证,那就在页面中禁用验证,将<%@ Page EnableEventValidation="false" %>,问题解决。但是为什么会出现这种问题呢,google一下。

如果页面含有 DropDownList 或 ListBox这样的控件,可能以下原因造成:

在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。

原因是 DropDownList 控件的ListItem 的Value 属性 包含汉字.只要将Value 改为英文或数字的就行了.最好在web.config中添加如下语句:
复制代码 代码如下:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/>

因为 POSTBACK 如果不采用 UTF-8 编码, JAVASCRIPT 会认为有问题。 只改 requestEncoding="utf-8" 就可以。如有其他建议,请指出。

时间: 2025-01-30 04:21:22

asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误的相关文章

回发或回调参数无效。在配置中使用 pages enableEventValidation=true 或在页面中使用 %@ Page EnableEventValidation=true % 启用了事件验证

WebForm中回发或回调参数无效问题的解决 解决   .NET中回发或回调参数无效问题的解 该错误的详细提示信息为: 回发或回调参数无效.在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证.出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件. 目前为止遇到的出

如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

问题描述 回发或回调参数无效.在配置中使用<pagesenableEventValidation="true"/>或在页面中使用<%@PageEnableEventValidation="true"%>启用了事件验证.出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件.如果数据有效并且是预期的,则使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调

ASP.NET服务器控件封装-【事件】-1.1【事件回发.异步回调】

最近,正在学习ASP.NET服务器控件封装相关的知识,把自己学到的和大家分 享下. 本次内容的概要如下: 1.事件以及为什么需要事件驱动机制: 2.回发的原理: 3.异步回调的原理: 4.事件回发的实现: 5.异步回调的实现. 了解了本次内容的概要,接下来就分节次说明了. 1.事件以及为什么需要事件驱动机制 在C#语言详解一书中对事件的定义是"事件是一种使对象或类能够提供通知的 成员",在这里换句话 说就是页面中已注册事件的对象能够对用户的操作进行捕获并处理.那么为什么 需要引用事件机

ASP.NET框架数据回发与事件回发

源从何起 经常在网上的论坛看到有人问Page类的方法RegisterRequiresPostBack有什么用,它是做什么的呢? 简短的官方解释 MSDN对它的解释是将控件注册为要求在页面回发至服务器时进行回发处理的控件,说真的我知道这段话 想描述些什么,但是你知道怎么用它,在哪里用吗? 寻找回发真相 首先ASP.NET框架规定,凡是要进行数据回发的控件都要实现IPostBackDataHandler 接口,它有两个方 法LoadPostData.RaisePostDataChangedEvent

ASP.NET -验证服务器控件

ASP.NET -验证服务器控件 验证服务器控件是用来验证用户输入.如果用户输入不通过验证,它会显示错误讯息给使用者. 每个验证控制执行特定类型的验证(如确认对某一特定值或某个范围的值) . 默认情况下,网页进行验证时,一个按钮, ImageButton ,或LinkButton控制点击.您可以防止验证时,一个按钮,按下控制设定CausesValidation属性为false . 语法创造一个验证伺服器控制项是: <asp:control_name id="some_id" ru

ASP.NET验证服务器控件

验证服务器控件是用来验证用户输入. 验证服务器控件 验证伺服器控制项是用来验证数据的输入控制.如果数据没有通过验证,它会显示错误讯息给使用者. 语法创造一个验证伺服器控制项是: <asp:control_name id="some_id" runat="server" /> 验证服务器控制的描述CompareValidator比较价值的一个输入控制的价值,另一种输入控制或固定值CustomValidator允许你写的方法来处理验证的价值进入RangeVa

利用Page.IsPostBack属性保持用户输入的Framework

利用Page.IsPostBack属性保持用户输入的Framework                             Batman    在大型应用中考虑到用户在进行大量输入工作时候,有可能要遇到下面这种情况.例如用户输入的信息中的某几项信息检测失败,服务器不得不把用户输入的信息重新返回给用户修改.这时就需要服务器把前面用户输入的信息重新返回给客户端,而不是简单的让用户再次重新输入烦琐的信息内容.    在ASP+中,存在一种不同于以前的新的控件-服务器控件,它的原理是可以通过<Hid

ASP.NET讲座(3)-输入验证控件

asp.net|控件 3.1 ASP.net解决了ASP的难题:验证表单填写的正确性 如今的商业网站,或者个人网站,多少都有客户调查啊,用户注册之类的东西,必然会用到表单,这些表单的填写正确与否,明显是由手写代码的方式来控制的.我承认编写代码,是一项有趣的工作,不过每次验证表单都来手写代码,我们希望提高我们的工作效率,并不是把我们很有限的时间花在表单的验证工作上. 基于另外的一些原因,Web应用程序很不好验证用户的输入,HTML 3.2 规范可以让你控制用户的反馈,但恶意的或者技术高超的用户可以

Asp.net中基于Forms验证的角色验证授权

asp.net Asp.net中基于Forms验证的角色验证授权 Asp.net的身份验证有有三种,分别是"Windows | Forms | Passport",其中又以Forms验证用的最多,也最灵活.Forms 验证方式对基于用户的验证授权提供了很好的支持,可以通过一个登录页面验证用户的身份,将此用户的身份发回到客户端的Cookie,之后此用户再访问这个web应用就会连同这个身份Cookie一起发送到服务端.服务端上的授权设置就可以根据不同目录对不同用户的访问授权进行控制了. 问