视图状态是 ASP.NET 页中的一个储存库,可以存储需要在回发期间保留的值。视图状态通常用于必须保留的页变量,而不是用于用户或会话数据。例如,您可以存储视图状态的信息,下次将页发送到服务器时,在加载页活动期间将访问这些信息。
视图状态数据以 Base64 编码字符串的格式存储在一个或多个隐藏字段中。您可以使用页的 ViewState 属性(此属性公开一个字典对象)来访问视图状态信息。由于视图状态数据以字符串的形式存储,因此只能存储可以序列化的对象。
由于视图状态是作为隐藏字段发送的,因此直到发生 PreRenderComplete 事件之前,都可以对视图状态进行更改。一旦将页呈现到浏览器,便无法保存对视图状态的更改。
如果查看页输出源,则可以看到隐藏视图状态字段中的信息,这可能产生安全性问题。若要缓解该问题,可以通过将 @ Page 指令中的 viewStateEncryptionMode 属性设置为“Always”来加密视图状态。
下面的代码示例演示如何将一个 ArrayList 增加到视图状态。
ViewState.Add("arrayListInViewState", PageArrayList);
取视图状态的值:
if (!ViewState["SortField"] == null) object o= ViewState["SortField"];
修改视图状态的值:
ViewState["SortField"]=NewValue;
※※※※※※※※※※※※※※--我的程序人生--※※※※※※※※※※※※※※