Asp.net ajax联动提示回发或回调参数无效的解决方法

前两天在项目中遇到了这个问题。

修改enableEventValidation不是个好主意,在网上找了找,出现这个错误的可能性大致是三种情况

 

一:下拉列表使用Ajax联动

二:没有if (!IsPostBack)

三:下拉列表的Value中有汉字

 

我遇到问题的起因是第一种情况,页面上有两个DropDownList联动。

CSDN上有一篇文章写到:只要我们告诉事件验证机制那些数据是有效的问题也就迎刃而解了。但是那篇文章最终没有给出解决方案。

 

关于事件验证,MSDN的说明是

 

 EnableEventValidation 属性设置为 true 时,ASP.NET 将验证源于该控件所呈现用户界面的控件事件。 控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件。 例如,如果在呈现页时列表控件包括编号 1 2 3 的选项,那么当接收到指定选项编号为 4 的回发请求时,ASP.NET 引发异常。 默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能。

 

所以解决方案是页面呈现时,调用RegisterForEventValidation方法,将需要重新绑定数据的DropDownList控件所有可能出现的值与它的UniqueID注册即可。

 

最终的解决代码如下:

Asp.net ajax联动提示回发或回调参数无效的解决方法,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。