【发布时间】:2009-10-06 12:15:20
【问题描述】:
请阅读 Maarten Balliauw 的 blog post。
想问问会
<%Html.Serialize("person", Model); %>
返回一堆“不要停止调试大量服务器端”的 RAD 控件?
加入这个是个好主意吗?
如果是这样 - 什么样的用法是合适的?
【问题讨论】:
标签: asp.net-mvc viewstate
请阅读 Maarten Balliauw 的 blog post。
想问问会
<%Html.Serialize("person", Model); %>
返回一堆“不要停止调试大量服务器端”的 RAD 控件?
加入这个是个好主意吗?
如果是这样 - 什么样的用法是合适的?
【问题讨论】:
标签: asp.net-mvc viewstate
我更多地将其视为一种避免使用会话在动作之间传输数据的方式,而不是视图状态本身,这就是我将使用它的目的。在我看来,这是一种实现某些向导类型功能的理想方式,您希望在将任何内容保存到数据库之前通过一系列操作将数据向前传递。当然,我认为存在过度使用它的危险,但只要框架不会自动将其强加给您,那么我就不会看到视图状态出现同样的危险。使用视图状态,您必须跳过障碍(并可能在此过程中破坏其他事情)以避免它。
【讨论】:
我们应该将 Base64 编码等同于 ViewState。我没有看到在那个 sn-p 中序列化的视图状态。我看到模型的状态。因此将其描述为 Asp.net MVC 的 ViewState 非常具有误导性。
还要考虑这是选择加入,而不是以任何方式自动进行的。它的主要用途可能是乐观并发以及您希望将用户先前选择存储在视图中的向导 UI,而不是 Session 或 Cookie。
【讨论】: