文档章节

System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>

 我是骗子
发布于 2016/05/19 23:24
字数 979
阅读 23
收藏 0

转载自http://blog.csdn.net/dongge825/article/details/7868151

 

关于在同一个页面中使用Gridview控件的时候发现气updaeting事件无法被服务器所响应,看来它的错误报警然后查询了部分资料现在将整理的解决方法总结如下:点击update 事件无法响应原因出在回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回 调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
         异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/> 或在页面中使用 <% @ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数 是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

       看了半天也没发现是什么问题,检查了一遍代码也是对的,页面所有控件的ID,属性都检查了还是没找到问题。后来才发现是这么回事:

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

3.多个Form中嵌套使用。
发生原因:
.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_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        //绑定数据;
    }
}
解决办法2:
<pages enableEventValidation="false"/>

 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时调用.

本文转载自:http://www.cnblogs.com/iSuwei/p/3627657.html

共有 人打赏支持
粉丝 0
博文 4
码字总数 0
作品 0
武汉
程序员
私信 提问
ajax实现DropDownList的更新,但是点击 按钮控件时出错,为什么?

回发或回调参数无效。在配置中使用 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的...

xxdd
2013/05/17
287
2
【转】DataList控件里添加Button,运行点击出现“回发或回调参数无效”的解决办法

DataList控件里添加Button,运行点击出现“回发或回调参数无效”的解决办法 2009-04-23 21:21

cxycappuccino
2010/04/23
0
0
回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证

1. 当在子窗口中选择车辆信息并返回车牌号时,单击选择按钮后会出现编译错误: “/”应用程序中的服务器错误。 ------------------------------------------------------------------------...

技术小胖子
2017/11/08
0
0
[求指教]httpclient构造post请求出现错误

大家好, 最近在用Httpclient模拟构造了一个post请求,参数,post url地址等信息都是正确的,但是服务器返回以下的信息,由于本人对asp.net开发的服务器端不太了解,所以求前辈不吝赐教,谢谢...

算法与编程之美
2012/11/06
1K
1
artDialog基本使用

配置参数 content: {消息内容,支持HTML} title: {标题.默认:'提示'} lock: {是否锁定屏幕. 默认:false} width: {宽度,支持em等单位. 默认:'auto'} height: {高度,支持em等单位. 默认:'auto'...

笨小熊
2015/09/14
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

easyui tree

<tr> <th><spring:message code="wf.borrow.examiner"/></th> <td> <input id="inp-examiner1" type="text" name="examiner1" style="width:197px;height:20px;" data-options="required:tru......

小兵胖胖
7分钟前
0
0
内存性能的正确解读

一台服务器,不管是物理机还是虚拟机,必不可少的就是内存,内存的性能又是如何来衡量呢。 1. 内存与缓存 现在比较新的CPU一般都有三级缓存,L1 Cache(32KB-256KB),L2 Cache(128KB-2MB)...

阿里云云栖社区
10分钟前
0
0
微服务架构:Zuul 1.0 和 2.0 我们该如何选择?

在今年5月中,Netflix终于开源了它的支持异步调用模式的Zuul网关2.0版本,真可谓千呼万唤始出来。从Netflix的官方博文[附录1]中,我们获得的信息也比较令人振奋: The Cloud Gateway team a...

大木老师故事的小黄花
10分钟前
0
0
基础掌握

哪些是基础功呢?我觉得包括: 数据结构和算法:链表、队列、栈、堆、树(RBT, B/B+)、跳表、哈希、图;查找(二分、bst)、排序(冒泡、插入、快排、归并、堆排、希尔)、递归、归并、回溯、...

边鹏_尛爺鑫
12分钟前
0
0
Android APP的安装路径

一. Android应用安装路径有两种情况: system/app 系统自带的应用程序,无法删除。root后可以删除,注意可能造成系统崩溃,不过有的垃圾捆绑软件只能这么删除了 data/app 用户程序安装的目录,...

天王盖地虎626
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部