【问题标题】:what happens when a session variable is assigned to a viewstate?将会话变量分配给视图状态时会发生什么?
【发布时间】:2013-10-03 00:07:17
【问题描述】:
如果我有一个 session["test"] = some "hashtable" 对象,并且我将此会话变量分配给一个视图状态对象 Viewstate["test"],那么当会话变量过期或更改时会发生什么?
视图状态变量是只存储对它的引用还是它自己的副本?
如果 session["test"] 被重新分配或设置为 null,视图状态变量是否也被重新分配/设置为 null?
【问题讨论】:
标签:
html
asp.net
session
viewstate
【解决方案1】:
它们是分开的,因为 ViewState 由标记中的隐藏字段支持。会话存储在内存中,具有明确的到期时间。 ViewState 不受此约束,因为它是从每个请求/响应的隐藏字段中序列化/反序列化的。
只需在您的页面上查看源代码,您会发现一个名为 ViewState 的隐藏字段,它是 base 64 编码的,但如果您对其进行解码,您将看到明文形式的内容。