enableEventValidation

enableEventValidation回发或回调参数无效。在配置中使用或在页面中使用启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用ClientS

大家好,又见面了,我是你们的朋友全栈君。

回发或回调参数无效。在配置中使用 <pages enableEventValidation=”true”/> 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回 调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

错误:

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

异 常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation=”true”/> 或在页面中使用 <% @ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数 是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

发生条件:
1。画面有隐藏控件。
2。多次的GRID绑定。

发生原因:
.NET基于页面中的输出元素会在最终页面中生成一个__EVENTVALIDATION隐藏字段。做了一个简单的测试。页面中创建一个<asp: button id=”btnSubmit” runat=”server” text=”Submit” tooltip=”Submit” />,同时创建对应的Click事件处理程序。运行程序,可以正确响应事件。然后设置btnSubmit.Visable=false,手动在页面 上面添加<input type=”submit” name=”btnSubmit” value=”Submit” />。运行程序,会出现一个包含EnableEventValidation内容的异常。设置<@Page EnableEventValidation=”false”>再运行程序,又可以正确响应事件。观察前后两次__EVENTVALIDATION 的内容,可以发现是不同的。关于出现的异常,可以认为在输出的时候没有包含btnSubmit,可是再提交到后台的时候却有相应的内容,前后不一致,所以 在开启事件校验的情况下.NET抛出了异常。

可行的解决方法有:

1、在页面的<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %> 中添加 EnableEventValidation=”false” 就可以了。(首先考虑的)

2、通过web.config
<system.web>
<pages enableEventValidation=”false”/>

3、是Form嵌套,一个页面只能有一个Form,仔细检查代码就可以解决。

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

4.1 在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。
4.2 原因是 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″ 就可以了,responseEncoding=”utf-8″ 不用

5.Register For Event Validation
其原理就是让asp.net记录这个postback value.
RegisterForEventValidation必须在render时调用.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154450.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab中acos得到的弧度范围,matlab角度弧度

    matlab中acos得到的弧度范围,matlab角度弧度MATLAB 中 FFT 的使用方法 数学 自然科学 专业资料 MATLAB 中 4 3Matlab 应用利用 Matlab 编制程序 由 1 个主程序 5 个子程序组成 主程序为 curve m 子程序分别为角度转换成弧度子程序 degrad m 弧度转换成角度子程序 再计算 75Hz 信号的相位 atan2 192 3 4315E 12 1 5708 弧度 换算成角度就是

    2025年11月24日
    4
  • opencv边界填充_opencv边缘提取

    opencv边界填充_opencv边缘提取目标:将区域内的小洞填充因为c++算法还不会,决定先用matlab试试,找到一个imfill可以实现区域的填充Matlab里的实现clearall;clc;I=im2bw(imread(‘E:\免疫组化\pic\tt.bmp’));figure,imshow(I);I1=imfill(I,’holes’);figure,imshow(I1);效果图但是二值免疫图的效果就不太理想原因也不是很清楚?…

    2025年9月2日
    4
  • Java方法重写与重载的区别

    Java方法重写与重载的区别Java方法重写与重载一、方法重写(0veriding)在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量。子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这样的一种操作方法称为重写,也叫称为覆写或覆盖。重写体现了Java优越性,重写是建立在继承关系上,它使语言结构更加丰富。在J…

    2022年7月8日
    30
  • Hook技术简单介绍

    Hook技术简单介绍Hook主要就是通过一定手段在程序执行过程中进行干预。IATHook篡改MessageBox借用accills的例子#include&lt;windows.h&gt;#include&lt;stdio.h&gt;#include&lt;imagehlp.h&gt;#pragmacomment(lib,"imagehlp.lib")//以MessageBoxA的…

    2022年5月18日
    61
  • Spring的Bean实例化、属性注入、对象注入、复杂注入(基于xml配置方式)

    Spring的Bean实例化、属性注入、对象注入、复杂注入(基于xml配置方式)

    2021年9月26日
    42
  • 网站渗透测试

    网站渗透测试目录[TOC]公司的网站需要渗透测试,学习了一下渗透测试的方法,记录下,方便后期查阅。(1)暴力激活成功教程1.1风险分析:数据传输过程使用非加密的http协议,因此可对数据传输过程进行抓包分析;用户名、密码明文,且未设置验证码,导致可进行暴力激活成功教程,以获取身份凭证信息1.2加固建议1:使用https加密传输可以在apache或者tomcat下配置好证书,启用https就ok,网上很多

    2022年6月16日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号