【发布时间】:2009-03-09 16:47:40
【问题描述】:
以下是我的设置的基础:
我有一个继承自 System.Web.UI.Page 的 BasePage 类。 BasePage 实现了两个属性,因此它们的 get/set 从 ViewState 集合中的两个不同项目(例如来自 BasePage 的 this.ViewState["Year"])中执行。
我有另一个继承自 BasePage 的类,我们称之为 SpecificBasePage。
最后,我有一个继承SpecificBasePage的aspx页面。
我已经添加了断点并在我的代码中进行了很多单步调试,发现在初始页面加载时,我的两个视图状态属性都被赋值,并且这些值在第一个页面加载生命周期中保持不变。
但是,当页面被回发时,在 Page_Load 事件和其他事件处理程序期间(应加载 ViewState 时),这两个属性都返回 null。检查 this.ViewState.Count 表明集合中有零个对象。
谁能想到我在某处可能会影响 ViewState 并导致这种行为的事情?
--加法 我已将其隔离到我的代码的一部分。在初始加载时,我在 OnInit 中提供了 viewstate 属性值,我发现当我将其移至 OnLoad 时,这些值在回帖中仍然存在。我猜即使添加的视图状态值在整个初始页面生命周期中都存在,但它们在回发中被放弃了?
【问题讨论】:
标签: asp.net viewstate page-lifecycle