所以我得到了例外
无效的回发或回调参数。事件验证是在配置中启用的,或者在页面中使用<%@ page EnableEventValidation="true“%>。出于安全考虑,此功能验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据是有效和预期的,则使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调数据以进行验证。
具有以下堆栈跟踪
System.ArgumentException:非捕获异常:无效的回发或回调参数。事件验证是在配置中启用的,或者在页面中使用<%@ page EnableEventValidation="true“%>。出于安全考虑,此功能验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据是有效和预期的,则使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调数据以进行验证。在System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueID,String参数)在System.Web.UI.Control.ValidateEvent(String uniqueId,String eventArgument,at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument),at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String 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,布尔型includeStagesAfterAsyncPoint)
异常在提交表单后发生,然后在页面重新加载之前快速单击LinkButton下载同一页上的文件。
有人能解释为什么在执行上述操作时会出现此异常吗?
提前感谢!
发布于 2011-05-02 17:17:39
这肯定是.NET中最令人沮丧的错误消息之一,但是一旦您对发生的事情有了感觉,这就有意义了。.NET喜欢知道正在发生的一切。它跟踪它放置在页面上的所有元素。按照同样的思路,当.NET接收来自它不知道的东西的输入时,它会被冒犯。在您的例子中,听起来好像,当您单击LinkButton时,.NET认为它不应该存在。根据我的经验,有两个可能的原因:
基本上,我相信如果您通过表单提交代码并查看该LinkButton,您将看到.NET忘记了它,这可以理解,当单击LinkButton时会触发这个“安全异常”。
发布于 2011-05-02 17:10:37
如果他们在页面有机会完全呈现之前点击,那么__EVENTVALIDATION字段将不会被完全写入-因此您的错误。
在3.5SP1/3.0 SP2中固定,在web.config中为可配置;
<configuration>
<system.web>
<pages renderAllHiddenFieldsAtTopOfForm="true"></pages>
</system.web>
</configuration>
默认值为true -那么您正在运行的是哪个版本的.NET呢?您可以始终禁用按钮客户端,直到页面完成加载。
发布于 2016-07-14 04:00:19
这个错误对我来说是断断续续地出现在一个非常大的页面上。
我发现,如果在页面完成加载之前单击了一个按钮,它就会产生这个错误。
在点击按钮之前,等待页面完全加载,我没有得到错误。
https://stackoverflow.com/questions/5859910
复制相似问题