• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
wenyue
博客园    首页    新随笔    联系   管理    订阅  订阅

Viewstate实现原理

(生成原理)1.在页面类对象,执行PR方法的时候,先创建了控件树,


然后通过执行LoadState方法,将请求报文中的名字为 __VIEWSTATE的值,


然后反base64编码,进行反序列化,最终还原成集合,


然后将其中属于程序员自己的添加到ViewState 里的键值对 还原到


页面对象的ViewState属性中。然后才执行的Page_Load方法。


在执行SaveState(将所有的服务器端控件的属性及值保存到ViewState属性中)


最后在页面生成html代码的时候,遍历ViewState中的键值集合,


然后将里面序列化,在将序列化后的字符串使用base64编码,最后生成


一个名为 __ViewState的隐藏域,在页面生成整个html代码的时候,作为


一个隐藏域添加到页面中

 


(点击提交按钮)2.A.此时在LoadState方法 分析请求报文里名为__VIewState


的隐藏域,将里面的字符串成反base64编码,然后反序列化还原成集合对象;


将其中用户添加的属性存入对象的ViewState属性值中。B.同时还将服务器端控件

的属性值从隐藏域中还原

posted @ 2011-09-03 00:35  wenyue  阅读(709)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3