会话超时后Viewstate被销毁

时间:2015-07-16 13:43:20

标签: c# asp.net session webforms viewstate

       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将被销毁。为什么呢?

1 个答案:

答案 0 :(得分:2)

如果要将视图状态保存在内存中,则将其保存在会话中。因此,当您的会话结束时,您的视图状态也会从内存中删除。