protected override PageStatePersister PageStatePersister
{
get
{
if (System.IO.Path.GetFileName(this.Page.Request.FilePath).Equals("login.aspx") || System.IO.Path.GetFileName(this.Page.Request.FilePath).Equals("login_error.aspx"))
return base.PageStatePersister;
string viewStateStorage = "memory";
if (ConfigurationManager.AppSettings["ViewStateStorage"] != null)
viewStateStorage = ConfigurationManager.AppSettings["ViewStateStorage"];
if (viewStateStorage != null && viewStateStorage.Equals("memory"))
{
return new CachePageStatePersister(Page);
}
if (viewStateStorage != null && viewStateStorage.Equals("session"))
{
return new SessionPageStatePersister(Page);
}
return base.PageStatePersister;
}
}
我们将ViewState保存到内存中,但是当Session结束时,ViewState将被销毁。为什么呢?
答案 0 :(得分:2)
如果要将视图状态保存在内存中,则将其保存在会话中。因此,当您的会话结束时,您的视图状态也会从内存中删除。