SessionState和ViewState有什么区别?

Nat*_*ium 114 asp.net viewstate session-state

ASP.NET中的SessionState和ViewState有什么区别?

Gis*_*shu 140

会话状态包含与服务器的特定会话(通过特定客户端/浏览器/机器)相关的信息.这是一种跟踪用户在网站上做什么的方式.. 跨越多个页面 ......在无状态的网络中.例如,特定用户的购物车的内容是会话数据.Cookie可用于会话状态.另一方面,
View State是特定于特定网页的信息.它存储在隐藏字段中,以便用户不可见.它用于维护用户的错觉,即页面记得他最后一次在上面做了什么 - 每次回帖都不要给他一个干净的页面.查看此页面了解更多信息.


thi*_*ing 95

会话状态保存在服务器上,ViewState保存在页面中.

会话状态通常在用户不活动一段时间后被清除(在请求cookie中没有发生包含会话ID的请求).

视图状态在后续帖子中发布在隐藏字段中.

  • +1是 - 重要的一点是ViewState在客户端和服务器之间上下移动,但SessionState保留在服务器上. (30认同)

Jes*_*sen 31

SessionState的

  • 可以持久存储在内存中,这使其成为一种快速解决方案.这意味着无法在Web场/ Web园中共享状态.
  • 可以保存在数据库中,对Web Farms/Web Gardens很有用.
  • 在会话终止时清除 - 通常在不活动20分钟后清除.

的ViewState

  • 在服务器和客户端之间来回发送,占用带宽.
  • 没有失效日期.
  • 在Web场/ Web园中很有用


Cyr*_*pta 14

用法: 如果要存储要在不同网页上访问的信息,可以使用SessionState

如果要存储要从同一页面访问的信息,则可以使用Viewstate

存储 Viewstate存储在页面本身(加密文本中),而Sessionstate存储在服务器中.

SessionState将在以下条件中清除

  1. 由程序员清除
  2. 用户清除
  3. 超时

  • ViewStates未加密.它们只是看起来那样,但可以很容易地解码. (5认同)

rah*_*hul 5

会话主要用于存储用户特定数据[会话特定数据].在会话的情况下,您可以使用整个会话的值,直到会话到期或用户放弃会话.Viewstate是仅在使用它的页面中具有范围的数据类型.除非将这些值传输到所需页面,否则您可以使用其他页面可访问的viewstate值.同样在viewstate的情况下,所有服务器端控制数据都作为__Viewstate中的键值对传输到服务器,并在发生回发时传回并呈现给客户端中的相应控件.