我有以下属性可以在 ViewState 中保存某些页面级别信息:
protected ViewStateModel Model
{
get
{
if (_pageModel == null)
{
_pageModel = (ViewStateModel) ViewState[_pageModelKey];
if (_pageModel == null)
{
_pageModel = new ViewStateModel();
ViewState[_pageModelKey] = _pageModel;
}
}
return _pageModel;
}
set
{
ViewState[_pageModelKey] = _pageModel = value;
}
}
这很好用,直到 IIS 工作进程被回收。我得到一个
无法将“ViewStateModel”类型的对象转换为“ViewStateModel”类型
现在,如果我调试,我看到 ViewState 仍然包含 ViewStateModel 类型的对象及其所有值,但是如果当我将其类型与我定义的 Model 类进行比较时,它返回 false
// this always returns false if the worker process has been recycled
ViewState[_pageModelKey] is ViewStateModel