日期:2014-05-17  浏览次数:20561 次

无效的视图状态
我现在碰到一个问题,不知道怎么解决,请大家看看,有办法的请赐教,谢谢!!!

如图,我的主页分成左右两块,左边是导航,右边是内容区域,点击左边的导航后,用jquery load一个aspx页面到右边的DIV里,主页上有一个退出按钮,这个按钮是服务器控件,该服务器控件的click事件里是清除session并转到login页面的功能,现在的问题是,在load完一个aspx页面到右边的DIV中后,再次按退出按钮,系统崩溃后提示“无效的视图状态”,我怀疑是主页本身就有一个viewstate,然后load了一个aspx页面后,这个页面本身也有一个viewstaet,然后按退出,这个时候是有一个post过程,asp.net不知道把哪个viewstate告诉服务器,我的思路大概是这样的,但是无法验证,请问各位有什么想法?如何解决,谢谢!

------解决方案--------------------
enableEventValidation="false" viewStateEncryptionMode ="Never"
检查页面__ViewState   
------解决方案--------------------
因为视图状态存储在网页上的隐藏字段中,所以数据在客户端与服务器之间传送时很容易被篡改。为帮助提高视图状态的安全性,ASP.NET 对视图状态进行验证以检查它是否来自正确的页面。
如果 ASP.NET 无法验证视图状态,ASP.NET 将向客户端浏览器返回信息“viewstate is invalid for this page and might be corrupted”。

你可以试试不用jquery load,改用服务端控件完成。
或者退出的功能也改用jquery调用服务器端的方法
------解决方案--------------------
div改成iframe