昨天我参加了一次面试,面试小组问了我这个问题。
发布于 2010-10-01 00:22:33
存储在视图状态中的项将作为隐藏控件中的超文本标记语言传输到客户端浏览器,并在用户从该页面发帖时发送回服务器(详细信息来自不可或缺的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隐藏控件,它看起来像这样(模拟数据):dDwxMjM0NTY3ODkwO3Q8cDxsPHBycEE7cHJw
3)在这一点上,这些项目在客户的浏览器上是潜在的:你可以说它们是“休眠”。
4)如果客户端发布页面,ASP.NET会再次将视图状态数据解码并反序列化到对象中,然后这些对象将“活动”到请求结束(或将它们写入另一个页面)。
发布于 2010-10-01 00:24:04
它会一直存在到你当前的页面存在。当回发操作完成时,ViewState将特定页面的控件值持久化到客户端。则用户请求另一页面上一页面数据不再可用。
https://stackoverflow.com/questions/3832657
复制相似问题