昨天我进行了一次采访,小组问了我这个问题。
最佳答案
存储在 View 状态中的项目作为隐藏控件中的 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 隐藏控件,它看起来像这样(模拟数据): dDwxMjM0NTY3ODkwO3Q8cDxsPHBycEE7cHJw
3) 此时,项目隐藏在客户端的浏览器中:您可能会说它们正在“休眠”。
4) 如果客户端发布页面,ASP.NET 再次将 View 状态数据解码并反序列化为对象,并且它们“存活”直到请求结束(或直到它们被写入另一个页面)。
关于asp.net - 存储在 View 状态中的项目的生命周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832657/