首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无效的回发或回调参数。为什么?

无效的回发或回调参数。为什么?
EN

Stack Overflow用户
提问于 2011-05-02 16:49:32
回答 5查看 20.3K关注 0票数 8

所以我得到了例外

无效的回发或回调参数。事件验证是在配置中启用的,或者在页面中使用<%@ 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下载同一页上的文件。

有人能解释为什么在执行上述操作时会出现此异常吗?

提前感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-02 17:17:39

这肯定是.NET中最令人沮丧的错误消息之一,但是一旦您对发生的事情有了感觉,这就有意义了。.NET喜欢知道正在发生的一切。它跟踪它放置在页面上的所有元素。按照同样的思路,当.NET接收来自它不知道的东西的输入时,它会被冒犯。在您的例子中,听起来好像,当您单击LinkButton时,.NET认为它不应该存在。根据我的经验,有两个可能的原因:

  1. 您正在对创建新输入或克隆现有输入的客户端魔法进行处理。
  2. 在处理表单提交时,.NET对LinkButton做了一些事情,这使得它不再可用。我遇到过的一些例子是,您的LinkButton是在后端动态创建的,或者您正在使用UpdatePanels,它们的内容在表单提交过程中被更改。

基本上,我相信如果您通过表单提交代码并查看该LinkButton,您将看到.NET忘记了它,这可以理解,当单击LinkButton时会触发这个“安全异常”。

票数 17
EN

Stack Overflow用户

发布于 2011-05-02 17:10:37

如果他们在页面有机会完全呈现之前点击,那么__EVENTVALIDATION字段将不会被完全写入-因此您的错误。

在3.5SP1/3.0 SP2中固定,在web.config中为可配置

代码语言:javascript
运行
复制
<configuration>
    <system.web>
        <pages renderAllHiddenFieldsAtTopOfForm="true"></pages>
    </system.web>
</configuration>

默认值为true -那么您正在运行的是哪个版本的.NET呢?您可以始终禁用按钮客户端,直到页面完成加载。

票数 3
EN

Stack Overflow用户

发布于 2016-07-14 04:00:19

这个错误对我来说是断断续续地出现在一个非常大的页面上。

我发现,如果在页面完成加载之前单击了一个按钮,它就会产生这个错误。

在点击按钮之前,等待页面完全加载,我没有得到错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5859910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档