ViewState与Session 的重要区别
ViewState 指的是当前页面的视图状态(不同于控件的视图状态),
ViewState 可以将任意支持序列化的对象保存到页面中,
它与 Session 的重要区别有两个:
第一、ViewState 保存的对象不能跨页使用,仅限当前页面使用。Session 对象则可以所有页面共享使用。
Session["Count"] = 13;
变量 Count 可供所有页面使用(只要存在),Count 变量的生命周期由初始化到会话结束,
ViewState["Count"] = 13;
变量 Count 仅能在当前页面使用,生命周期是请求当前页面开始,到当前页面完成生成HTML最终呈现到客户端浏览器的文件结束。
对象被序列化后“依附”在页面上,
呈现为页面时使用 标记记录相关信息。
每一次回调(CallBack),ASP.NET将从当前页面中提取“依附”在页面上“寄存”的信息以还原该视图状态的对象。
例如:
程序代码
- Page_Load()
- {
- if (! IsPostBack)
- {
- ViewState["Count"] = 0; //初始化 Count 变量
- }
- }
Page_Load(){ if (! IsPostBack) { ViewState["Count"] = 0; //初始化 Count 变量 }}
经过初始化后,可在当前页面任意地方使用该变量(即使是回调时执行的代码)。