我有一个VB.Net网站,并在我的注册页面我将SessionState中存储ViewState。我正在使用下面的代码来实现这一点。问题与ViewState坚持会话时使用IE(但不是FF)
Private _sessionViewStatePersister As System.Web.UI.PageStatePersister
Protected Overrides ReadOnly Property PageStatePersister() As System.Web.UI.PageStatePersister
Get
If _sessionViewStatePersister Is Nothing Then
_sessionViewStatePersister = New SessionPageStatePersister(Me)
End If
Return _sessionViewStatePersister
End Get
End Property
这一直是个做工精细,然后我开始看到偶尔“System.NullReferenceException:对象引用未设置到对象的实例。”。
当我尝试从DropDownList的SelectedItem中获取文本属性的值时引发异常,问题是DropDownList在页面回发后不包含项目。
问题只存在于使用IE浏览器(根据我的日志7或8,但我只测试8),但不是当使用FireFox 3.5时。
恢复使用正常的ViewState持久性机制导致页面再次在IE中工作。 没有记录ViewState相关的异常,它就像页面'认为'它没有存储ViewState。
有谁知道可能会导致这种情况,有没有最近的IE补丁可能是罪魁祸首? 有没有其他人遇到类似我所描述的东西?
谢谢!
很好的答案。巧合的是,我在测试中禁用了Cookie。 :S这是有道理的,我会看到IE导致这个问题,因为企业环境更可能禁用cookie。 – withakay 2009-10-28 10:59:25