我的一个QA团队发现了以下内容:如果在包含内置控件的更新面板的页面上按ESC两次,如果单击其他任何进行回发的操作,则会出现System.ArgumentException :无效的回发或回调参数。使用[...]错误启用事件验证。
我想了解更多有关ESC键的默认行为的信息。并且可能有兴趣在事件发生时联系事件以解雇其他事件。
消息:Sys.WebForms.PageRequestManagerServerErrorException:无效的回发或回调参数。使用配置或<%@ Page EnableEventValidation =“true”%>启用事件验证在一个页面中。出于安全考虑,此功能可验证回发或回调事件的参数是否来自最初呈现它们的服务器控件。如果数据有效且符合预期,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。
现在实际上我页面中的内容我的页面只有以下组件
.net4.0或.net 3.5
protected void btnSubmit_OnClick(object sender,EventArgs e){}我的代码背后什么都没有!!!
你可以重复错误 一个。删除“”的东西 湾在浏览器中运行您的网站(IE8,兼容模式也失败)
请仔细按照以下步骤操作(您应该点击提交按钮两次,并在完成整个测试用例后按Esc键四次)
一个。单击文本框以设置焦点
湾在键盘上按两次Esc键(我按下每秒按键两秒钟,按键每小时可尝试一小时)
C。点击提交按钮
d。单击文本框以将焦点设置回来
即在键盘上按两次Esc键
F。点击提交按钮
任何帮助都一定会受到赞赏。
答案 0 :(得分:1)
如果我没记错,这种行为与Cross-site scripting (XSS) validation相关。
有一种方法可以确认是否是因为XSS验证,请转到:
工具 - >互联网选项 - >安全 - >自定义级别 - >滚动到列表的底部 - >单击“禁用XSS筛选器”
或者您可以尝试:
<%@Page EnableEventValidation="false"...
这两个功能都是安全功能,旨在避免代码注入。
此处还有其他帖子描述了涉及相同步骤的类似步骤,您知道:
JQuery-Ajax script not working in ie on second click but working in FF and Chrome on second click
你可以尝试这样的事情来解决这个问题:
http://www.codeproject.com/Articles/18238/The-UpdateProgress-Control-of-ASP-NET-AJAX-Extensi
更新1
EnablePartialRendering="false"
到asp:ScriptManager
使用“edge”确保您的网站以正确的兼容性呈现:
<meta http-equiv="X-UA-Compatible" content="edge" />
如果上述情况无效,请尝试控制异常处理程序,如下所示:
http://encosia.com/how-to-improve-aspnet-ajax-error-handling/