这几天运到了一个很棘手的问题!我目前开发的一网站采用的是gb3212编码的,现在已经开发得差不多了!因为页面刷新太过于严重,所以把后台所有的dropdownlist做成为无刷新连动的效果.我用的是.NET AJAX extensions来实现其页面无刷新连动效果!刚刚开始做的时候,问题就出现了.做成这一种效果的页面一运行老是出现如下的错误信息:

回发或回调参数无效。在配置中使用 <pages enableEventValidation=”true”/> 或在页面中使用 <%@ Page EnableEventValidation=”true” %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。

在网上找了很多资料,最后才知道原来是编码搞的贵,ajax在数据传输的时候采用的是utf-8编码格式!不支持GB3212编码,所以每次回传的数据来是有问题!于是我把WEB配置文件改成为"<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN"/>",回传的问题是解决了,页面是不会出现什么错误!但又有新问题出现了,因为之前采用的是GB3212编码,现在换成另一种编码格式,造成整个前台页面的架构混乱!

真的是郁闷死人了!解决了一个问题又出现新的问题,没有办法下只好把WEB配置文件恢复成为<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN"/>.

继续寻找新的解决方法!经过几三天的努力,在网络上找了到一篇文章,通过他的启示,最终才解决了这个问题.我的解决方法还是更改WEB配置文件,改变成为:<globalization fileEncoding="gb2312" requestEncoding="utf-8" responseEncoding="gb2312" culture="zh-CN"/>

通过这样更改,既不会让前台页面的效果,也解决了之前出现的问题!问题虽然是解决了,但我不是很清楚具体的原因所在,也不清楚这样更改是否对现在的网站有没有影响.总之把问题解决了就好!寻找了几天的问题终于解决!