本文介绍了无效的回发或回调参数。为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我得到的异常

无效的回发或回调参数。
  事件验证使用启用
  
  在配置或LT;%@页
  EnableEventValidation =真正的%>在
  页。为了安全起见,这
  功能验证参数
  回发或回调事件的起源
  从服务器控件
  最初呈现这些。如果数据
  是有效的和期望的,可使用
  ClientScriptManager.RegisterForEventValidation
  方法以注册
  对于回发或回调数据
  验证。

通过下面的堆栈跟踪

[System.ArgumentException:无法捕获
  例外:无效的回发或
  回调参数。事件验证
  使用已启用
  配置或LT;%@页
  EnableEventValidation =真正的%>在
  页。为了安全起见,这
  功能验证参数
  回发或回调事件的起源
  从服务器控件
  最初呈现这些。如果数据
  是有效的和期望的,可使用
  ClientScriptManager.RegisterForEventValidation
  方法以注册
  对于回发或回调数据
  验证。]在
  System.Web.UI.ClientScriptManager.ValidateEvent(字符串
  UNIQUEID,字符串参数)在
  System.Web.UI.Control.ValidateEvent(字符串
  UNIQUEID,字符串eventArgument)在
  System.Web.UI.WebControls.LinkBut​​ton.RaisePostBackEvent(字符串
  eventArgument)在
  System.Web.UI.WebControls.LinkBut​​ton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串
  eventArgument)在
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
  sourceControl,字符串eventArgument)结果
  在
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection中
  POSTDATA)在
  System.Web.UI.Page.ProcessRequestMain(布尔
  includeStagesBeforeAsyncPoint,布尔
  includeStagesAfterAsyncPoint)

提交表单,然后迅速点击一个LinkBut​​ton再次下载同一页上的文件页面重新加载之前之后发生异常。

The exception occurs after submitting a form, and then quickly clicking on a LinkButton to download a file on the same page before the page reloads again.

有人能解释为什么这种异常在执行上述行为发生的细节?

Can someone explain the details of why this exception is occurring upon executing the actions described above?

在此先感谢!

推荐答案

这有可能成为.NET中最令人沮丧的错误消息之一,但一旦你得到了什么事情的感觉,这是有道理的。 .NET喜欢知道是怎么回事了一切。它跟踪所有它已放置在页面上的元素。本着同样的精神,.NET被当它从它的东西不知道接收输入得罪。根据你的情况,这听起来像,在你点击LinkBut​​ton的时候,.NET不认为它应该在那里。根据我的经验,可能有两个原因:

This has to be one of the most frustrating error messages in .NET, but once you get a feel for what's going on, it makes sense. .NET likes to know EVERYTHING that's going on. It keeps track of all the elements that it has placed on the page. Along those same lines, .NET gets offended when it receives input from something it didn't know about. In your case, it sounds like, at the time you click on the LinkButton, .NET doesn't think it should be there. In my experience, there are two likely reasons for this:


  1. 您正在做的到正在创建新的输入或克隆现有的输入客户端的魔力。

  1. You're doing to client-side wizardry that is creating new inputs or cloning existing inputs.

当正在处理表单提交,.NET做一些事情来LinkBut​​ton的,导致其不再可用。我碰到这方面的一些例子是,当在后台动态创建您的LinkBut​​ton的,或者你正在使用的UpdatePanel和表单的提交过程中他们的内容得到改变。

While the form submission is being processed, .NET does something to the LinkButton which causes it to be no longer available. Some examples of this I've run into are when your LinkButton is dynamically created in the backend or you're using UpdatePanels and their content get changed during the form's submission.

基本上,我相信如果你步步表单提交code和观看该LinkBut​​ton的,你会看到.NET忘掉它,理解它触发该安全例外被点击LinkBut​​ton的时候。

Basically, I believe if you step through the form submission code and watch that LinkButton, you'll see .NET forget about it, which understandably triggers this "Security Exception" when the LinkButton is clicked.

这篇关于无效的回发或回调参数。为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-24 06:24