IE 8.0 Escape Key Issue Web Forms



我的一个QA团队刚刚发现了以下内容:如果你在一个包含更新面板的页面上点击ESC两次,里面有一个控件,如果你点击其他任何可以回发的东西,你就会得到一个系统。ArgumentException:无效的回发或回调参数。使用[…]错误启用了事件验证。

我想了解更多关于ESC键默认行为的信息。并且可能有兴趣在这种情况发生时与活动挂钩,以激发其他东西。

消息:系统。WebForms。PageRequestManagerServerErrorException:无效的回发或回调参数。使用配置中或<%@启用事件验证页面中的页面EnableEventValidation="true"%>。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据是有效的和预期的,请使用ClientScriptManager。RegisterForEventValidation方法,以便注册回发或回调数据以进行验证

现在实际上我的页面中有什么我的页面只有以下组件

  1. .net4.0或.net3.5

  2. protected void btnSubmit_OClick(object sender,EventArgs e){}我没有代码!!!

  3. 您可以通过重复该错误a.删除"b.在浏览器中运行您的网站(IE8,兼容模式也失败)

  4. 仔细遵循以下步骤(在完成整个测试用例后,您应该单击两次提交按钮并按四次Esc键)

a。单击文本框以设置焦点
b。在键盘上按两次Esc键(我试过每次按两秒,你可能会试着每次按一小时)
c。单击提交按钮
d。单击文本框将焦点设置回
e。在键盘上按两次Esc键
f。点击提交按钮

任何帮助我们都将不胜感激。

如果我记得正确的话,此行为与跨站点脚本(XSS)验证有关。

有一种方法可以确认是否是因为XSS验证,请转到:

工具->Internet选项->安全性->自定义级别->滚动到列表底部->单击禁用XSS过滤器

或者你可以试试:

<%@Page EnableEventValidation="false"... 

这两个特性都是安全特性,目的是避免代码注入。

这里还有其他帖子描述了类似的步骤,引用了相同的步骤,只是为了让你知道:

JQueryAjax脚本在第二次点击时不能在ie中工作,但在第二次点击时可以在FF和Chrome中工作

无效的回发或回调参数。事件验证使用'<pages enableEventValidation=";真"/>#39;

你可以尝试这样的方法来解决这个问题:

http://www.codeproject.com/Articles/18238/The-UpdateProgress-Control-of-ASP-NET-AJAX-Extensi

更新1

  • 你可以尝试的另一件事是:EnablePartialRendering="false"asp:ScriptManager

使用"边缘":确保您的网站呈现具有适当的兼容性

<meta http-equiv="X-UA-Compatible" content="edge" />

如果以上都不起作用,请尝试像这样控制异常处理程序:

http://encosia.com/how-to-improve-aspnet-ajax-error-handling/

最新更新