ViewState与Session 的重要区别

ViewState 指的是当前页面的视图状态(不同于控件的视图状态),

ViewState 可以将任意支持序列化的对象保存到页面中,

它与 Session 的重要区别有两个:

第一、ViewState 保存的对象不能跨页使用,仅限当前页面使用。Session 对象则可以所有页面共享使用。

Session["Count"] = 13;

变量 Count 可供所有页面使用(只要存在),Count 变量的生命周期由初始化到会话结束,

ViewState["Count"] = 13;

变量 Count 仅能在当前页面使用,生命周期是请求当前页面开始,到当前页面完成生成HTML最终呈现到客户端浏览器的文件结束。

对象被序列化后“依附”在页面上,

呈现为页面时使用 标记记录相关信息。

每一次回调(CallBack),ASP.NET将从当前页面中提取“依附”在页面上“寄存”的信息以还原该视图状态的对象。

例如:

程序代码

 

  1. Page_Load()   
  2. {   
  3.     if (! IsPostBack)   
  4.     {   
  5.         ViewState["Count"] = 0; //初始化 Count 变量   
  6.     }   
  7. }  

 

Page_Load(){ if (! IsPostBack) { ViewState["Count"] = 0; //初始化 Count 变量 }}

 

经过初始化后,可在当前页面任意地方使用该变量(即使是回调时执行的代码)。

posted @ 2010-10-14 17:21  双面人3  阅读(255)  评论(0编辑  收藏  举报