ASP.NET ViewState的用法
ViewState的定义:
视图状态是 ASP.NET 页中的一个储存库,可以存储需要在回发期间保留的值。视图状态通常用于必须保留的页变量,而不是用于用户或会话数据。例如,您可以存储视图状态的信息,下次将页发送到服务器时,在加载页活动期间将访问这些信息。有关推荐的使用方法,请参见 ASP.NET 状态管理建议。
视图状态数据以 Base64 编码字符串的格式存储在一个或多个隐藏字段中。您可以使用页的 ViewState 属性(此属性公开一个字典对象)来访问视图状态信息。由于视图状态数据以字符串的形式存储,因此只能存储可以序列化的对象。
由于视图状态是作为隐藏字段发送的,因此直到发生 PreRenderComplete 事件之前,都可以对视图状态进行更改。一旦将页呈现到浏览器,便无法保存对视图状态的更改。
比如,可以记录多次登录的次数。
private int LoginNum
{
get
{
if (ViewState["LoginNum"] == null)
return 0;
return Convert.ToInt32(ViewState["LoginNum"]);
}
set
{
ViewState["LoginNum"] = value;
}
session 对整个 application 有效 ,而 viewstate相当于
某个页面的 session
定义 viewstate
// save in ViewState
ViewState["SortOrder"] = "DESC";
// read from ViewState
string sortOrder = (string)ViewState["SortOrder"];