• The state information is invalid for this page and might be corrupted解决办法


    1 问题:网站部署之后,排序或者搜索之后报错:The state information is invalid for this page and might be corrupted

    2 原因:Viewstate (视图状态持久性机制)

    Asp.net页面中ViewState一般是存储在页面的一个隐藏域中:<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="一堆乱七八糟的东西">

    很多人可能都遇到过,视图状态被破坏掉了,页面无法显示,

    解决方法1:把页面的ViewState去;但不是最佳的;

    属性:
    enableViewStateMac
    指定从客户端回发页时,ASP.NET 是否应该对页的视图状态运行消息身份验证代码 (MAC)。如果为 True,将检查加密的视图状态,以验证视图状态是否已在客户端被篡改。默认值为 True。
    viewStateEncryptionMode
    指定视图状态的加密模式。ViewStateEncryptionMode 属性重写配置文件中设置的该属性。
    此属性可以为下列可能值之一。
    Always
    视图状态始终加密。
    Auto
    视图状态根据控件的请求而加密。
    Never
    视图状态从不加密,即使控件请求加密时也是如此。
    此属性是 .NET Framework 2.0 版中的新属性。
    默认值为 Auto。
    引发上面这种错误的一般原因都是因为网页还没有完全下载完,页面的ViewState不完全,然后就有了Postback,这样就导致了ViewState验证错误。这种解决方法一般就是在页面或者web.config中加上或更改pages属性,如下:
    <pages enableEventValidation="false" viewStateEncryptionMode ="Never" />
    这样页面就不会进行验证。 可试试;

    (2)。接受数据的变量相同导致;在页面,ViewState把表格对象保存后,可能用的是xml格式,但是如果DataSet和 DataTable的名字一样,会导致xml结构上出了问题,所以当ViewState重新读取时发生错误(一个页面的内容里包含了同样名字为 __VIEWSTATE的变量的内容,所以在主页面提交时,会发现内容已经变化了.所以没办法提交.)

    3 解决办法:

    首先尝试了在页面,form,repeater上都禁用了viewstate,但是不起作用还是不行,后尝试修改web.config并实现。

    web.config,加配置:<pages validateRequest="false" enableViewStateMac='false' />

    若是崩掉,提示customers之类的错误,再添加一个配置:<customErrors mode="Off" defaultRedirect="GenericErrorPage.htm"></customErrors>

    ok了~~嘻嘻~~

  • 相关阅读:
    Maven简介
    Activiti核心API
    Activiti数据库支持
    使用idea进行activiti工作流开发入门学习
    Activiti 工作流
    枚举其他用法
    枚举类的基本使用
    kotlin中抽象类
    kotlin中接口
    kotlin 类的继承
  • 原文地址:https://www.cnblogs.com/judy0605/p/2726153.html
Copyright © 2020-2023  润新知