当前位置:Gxlcms >
asp.net >
asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误
asp.net Page.EnableEventValidation 属性验证服务器控件的回发和回调事件出现的错误
时间:2021-07-01 10:21:17
帮助过:56人阅读
本以为页面很简单不会出现问题,但运行时出现了如下错误:
Page.EnableEventValidation 属性 参看了一下MSDN,获取或设置一个值,该值指示页面验证回发事件,还是验证回调事件。.NET Framework出于安全考虑需要为服务器端控件的回发和回调事件进行注册,此事件验证机制可消除未经授权的回发请求和回调带来的风险。通过此模型,控件可在呈现期间注册其事件,然后在回发或回调期间验证这些事件。默认情况下,ASP.NET 中的所有事件驱动控件均使用此功能。
第一反应,既然启用了事件验证,那就在页面中禁用验证,将<%@ Page EnableEventValidation="false" %>,问题解决。但是为什么会出现这种问题呢,google一下。
如果页面含有 DropDownList 或 ListBox这样的控件,可能以下原因造成:
在下拉菜单中使用ajax,常见于省市联动菜单,可能是由于在aspx页面赋给了下拉菜单初始Item值,在事件回发时提示该错误,将下拉菜单初始Item值删除,在绑定事件中添加Item项。
原因是 DropDownList 控件的ListItem 的Value 属性 包含汉字.只要将Value 改为英文或数字的就行了.最好在web.config中添加如下语句:
代码如下:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/>
因为 POSTBACK 如果不采用 UTF-8 编码, JAVASCRIPT 会认为有问题。 只改 requestEncoding="utf-8" 就可以。如有其他建议,请指出。