使用ViewState的Asp.net MVC?

时间:2009-10-06 12:15:20

标签: asp.net-mvc viewstate

请阅读Maarten Balliauw的blog post

想要问

<%Html.Serialize("person", Model); %> 

返回一堆'不要停止调试 - 服务器密集的'RAD控件?

这包含这个是个好主意吗?

如果是的话 - 哪种用法合适?

2 个答案:

答案 0 :(得分:2)

我更多地将其视为一种避免使用会话在动作之间传输数据的方式而不是viewstate本身,这就是我将其用于的方式。在我看来,这是一种实现某些向导类型功能的理想方法,在这种功能中,您希望在将任何内容保留到数据库之前通过一系列操作来传递数据。当然,我认为有过度使用它的危险,但只要框架没有自动强加给你,那么我看不到viewstate弹出的相同危险。使用viewstate,您必须跳过箍(并且可能会破坏过程中的其他内容)以避免它。

答案 1 :(得分:1)

我们不应该将Base64编码等同于ViewState。我没有看到该片段中序列化的视图状态。我看到了模型的状态。所以描述为Asp.net MVC的ViewState是非常误导的。

还要考虑这是选择加入而不是自动的。它的主要用途可能是乐观并发以及向导UI,您希望在视图中存储用户以前的选择而不是会话或Cookie。