当页面包含视图状态变量时,加载视图状态失败

本文关键字:视图状态 加载 失败 变量 面包 | 更新日期: 2023-09-27 18:01:45

当我在包含viewstate的页面上不使用或处理几分钟并重新加载页面时,我得到了这个错误:

Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.

我通过设置页面设置enableviewstate= false

得到了解决方案

但是在应用了这个之后,viewstate变量在这个页面上不起作用

当页面包含视图状态变量时,加载视图状态失败

原因可能是您在Page_Load中动态添加了控件。也就是说,你在Page_Load中添加了一些网格,它的视图状态被保存到页面中,但是,当页面被发送回来,并且ViewState被解析时,引擎无法找到解析ViewState的相应控件。

这是因为Load事件(由Page_Load处理)在页面完全加载后被触发,即创建子节点,视图状态解析和应用,但在客户端事件(如on click)触发和页面呈现之前。

将动态控件添加到Page_Init中,并确保每次创建时都完全相同,即在第一个页面初始化和回发后的页面初始化。

一个有用的链接ASP。. NET页面生命周期

在我的情况下,发生这个问题是因为我正在创建影响控件位置值的控件,因为它无法关闭渲染该控件的标记。通过纠正控制标签它被纠正为