代码之家  ›  专栏  ›  技术社区  ›  Surya sasidhar

视图状态下存储的项目的寿命是多少?

  •  4
  • Surya sasidhar  · 技术社区  · 16 年前

    昨天我接受了一次采访,小组问了我这个问题。

    2 回复  |  直到 16 年前
        1
  •  4
  •   Jeff Sternal    16 年前

    在视图状态下存储的项目将作为隐藏控件中的HTML传输到客户端浏览器,并在用户从该页面发帖时发送回服务器(来自 ViewState: All You Wanted to Know ):

    1) ASP。NET开始呈现页面。当前ViewState中的所有对象都使用如下自定义格式进行序列化: t<1234567890;t<p<l<prpA;prpB;prpC;>;l<valA;valB;valC;>>;

    2) 序列化数据被编码并写入ASP.NET上的HTML隐藏控件。NET页面的表单,如图所示(模拟数据): dDwxMjM0NTY3ODkwO3Q8cDxsPHBycEE7cHJw

    3) 此时,这些项目就潜伏在客户端的浏览器中:你可以说它们正在“休眠”

    4) 如果客户端发布页面,则ASP。NET再次将视图状态数据解码并反序列化为对象,它们“活动”直到请求结束(或写入另一页)。

        2
  •  3
  •   Stewie Griffin    16 年前

    它一直存在,直到你的当前页面存在。回发操作完成后,ViewState会在客户端中保留特定页面控件的值。然后用户请求另一页上一页数据不再可用。

    推荐文章