回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回 调事件的参数是否来源于最初呈现这些事件的服务器控件。若是数据有效而且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中致使错误的出处的详细信息。程序员
错误: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_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //绑定数据; } }
解决办法2: <pages enableEventValidation="false"/>ajax
可能出现的问题: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。若是数据有效而且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 英文描述 id postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for valida |
这个要具体分析。原本这个措施是asp.net2.0用来防止客户端“欺诈”服务器端的。例如原本输出到客户端的一个事件被触发时须要回发的命令是“__doPostback( 'ctl01$abc ', 'user_1 ')”的,若是采起采起手段把回发参数由 user_1 改成 user_5 了,服务器端会从新核对输出的是否是user_5,发现和这个页面上一个输出的脚本不一致,就会产生这个异常。
可是,不少程序员写的程序按照过去的习惯(或者按照更加高级灵活的设计例如一些Ajax组件)没有考虑这个问题或者是忽略这个欺诈的可能性,写的程序可能会修改参数或者修改目标控件。
所以这样具体问题具体分析。不太可能跟浏览器距离服务器的远近有关,应该仍是编程逻辑问题。你应该对出异常的画面以及所使用的数据进行分析。有时候,常常也须要将这个参数设置为false,放弃安全管理。浏览器