淘小店

viewstate

asp.net使用viewstate来保存页面的状态,ViewState的类型是System.Web.UI.stateBag,它是存储名称/值对的宇典。ViewState 机制是用来保存页面状态的, 这-机制的使用, 可以使得用户在使用某动态页面时,获得连续性动作的功能,而不需要在每次提交页面后都必须重新输入一遍数据。

ViewState 的实现机制
ViewState机制的实现并不复杂。简单来说, 每次服务器发送给客户端的页面中, 都隐藏了一个数据,该数据就用以保存ViewState,可以想象,当客户端再次提交表单时,ViewState就会又随着表单一起提交到服务器端,循环往复就达到了持续保存数据的功能。下面是保ViewState数据机制的一个周期:
1、客户申请一个新的带有ViewState宇段的页面,第一次申请时ViewState字段内数据为空。

2、客户提交表单,这时ViewState字段作为表单的一部分被提交,当然这时为空。

3、服务器从表单中读取ViewState的数据,解码解密,并且存入ViewState对象中,第一次
时仍然为空。
4、服务器处理完表单数据后,把表单数据相应存入ViewState对象,这时ViewS tate就有值了。
服务器把ViewState对象加密并编码,然后写入页面的ViewState宇段,这时页面ViewState
字段就包含了上次提交的表单内的控件数据以及服务器代码写入ViewState的数据。
5、服务器把页面发还给客户端,客户端得到了ViewState数据。

 

查看页面源代码可以看到 ViewState 的页面宇段实际存储在一个隐藏控件内,这个hidden的value 以BASE64编码的形式存在的一个xml文件

posted on 2011-02-22 10:26  adu123  阅读(347)  评论(0编辑  收藏  举报

导航

淘小店