所以我得到了异常
无效的回发或回调参数。 使用启用事件验证 在配置或<%@ Page EnableEventValidation =“true”%>在一个 页。为安全起见,这个 功能验证参数 回发或回调事件源自 从服务器控制那个 最初渲染它们。如果数据 是有效的和预期的,使用 ClientScriptManager.RegisterForEventValidation 注册方法 回发或回调数据 验证
使用以下堆栈跟踪
[System.ArgumentException:Untrapped 例外:回发无效或 回调参数。事件验证 使用in启用 配置或<%@ Page EnableEventValidation =“true”%>在一个 页。为安全起见,这个 功能验证参数 回发或回调事件源自 从服务器控制那个 最初渲染它们。如果数据 是有效的和预期的,使用 ClientScriptManager.RegisterForEventValidation 注册方法 回发或回调数据 验证。] at System.Web.UI.ClientScriptManager.ValidateEvent(字符串 uniqueId,String参数)at System.Web.UI.Control.ValidateEvent(字符串 uniqueID,String eventArgument)at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(字符串 eventArgument)at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument)at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection中 postData)at System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
在提交表单之后发生异常,然后在页面重新加载之前快速单击LinkButton以在同一页面上下载文件。
有人可以解释在执行上述操作时发生此异常的原因的详细信息吗?
提前致谢!
答案 0 :(得分:17)
这必须是.NET中最令人沮丧的错误消息之一,但是一旦你了解了正在发生的事情,它就有意义了。 .NET喜欢了解一切正在发生的事情。它跟踪它放置在页面上的所有元素。沿着同样的路线,当.NET收到来自它不知道的东西的输入时,它会被冒犯。在你的情况下,听起来,当你点击LinkButton时,.NET并不认为它应该在那里。根据我的经验,有两个可能的原因:
您正在进行创建新输入或克隆现有输入的客户端向导。
在处理表单提交时,.NET会对LinkButton执行某些操作,导致它不再可用。我遇到的一些例子是你的LinkButton是在后端动态创建的,或者你正在使用UpdatePanels,并且在表单提交过程中它们的内容会被更改。
基本上,我相信如果您单步执行表单提交代码并观察LinkButton,您会看到.NET忘记它,当单击LinkButton时可以理解地触发此“安全例外”。
答案 1 :(得分:2)
如果他们在页面有机会完全渲染之前点击,则__EVENTVALIDATION字段将不会被完全写入 - 因此您的错误。
现在这已在3.5 SP1 / 3.0 SP2中修复,并且在web.config中为configurable;
<configuration>
<system.web>
<pages renderAllHiddenFieldsAtTopOfForm="true"></pages>
</system.web>
</configuration>
默认值为true - 那么您运行的是什么版本的.NET?您可以随时禁用客户端按钮,直到页面加载完毕。
答案 2 :(得分:1)
这个错误在我非常大的页面上间歇性地出现。
我发现如果在页面完成加载之前点击了按钮,则会出现此错误。
在点击按钮之前等待页面完全加载,我没有收到错误。
答案 3 :(得分:0)
在page.asx中使用此页面标记EnableEventValidation =“false”
答案 4 :(得分:0)
我发现如果您不从模板中删除所有内容,那么html表单可能会导致WebForms出现此问题