何时启用/禁用Viewstate

时间:2008-09-22 06:35:13

标签: asp.net web-user-controls

我通常禁用我的ASP.net控件的viewstate,除非我明确知道我将需要它们的视图状态。我发现这可以显着减少HTML生成的页面大小。

这是好习惯吗?什么时候应该启用或禁用?

6 个答案:

答案 0 :(得分:19)

是的,这是一个非常好的主意。有人可能会说它应该被Microsoft默认禁用,就像缓存一样。

要了解Viewstate在大小方面有多糟糕,您可以使用名为Viewstate Analyzer的工具。当您使用Viewstate启用现有应用程序时,这尤其有用。

禁用Viewstate的另一个好理由是,当你有大量组件依赖它时,很难在以后阶段禁用它。

答案 1 :(得分:5)

我认为这是一种很好的做法。许多ASP.NET开发人员都不知道他们的视图状态会给发送给用户浏览器的HTML带来巨大的负担。

答案 2 :(得分:4)

这是一个很好的做法。除非您在回发时使用ViewState值,否则某些复杂控件本身需要它们,因此最好将ViewState保存为将发送给客户端的一部分。

答案 3 :(得分:4)

您可能会发现MSDN上"ASP.NET State Management Recommendations" article中包含的信息对您做出决定非常有用。

通常在ASP.NET 2.0及更高版本中,由于引入了控制状态来存储引发事件所需的信息等,因此禁用ViewState的破坏性较小。

答案 4 :(得分:2)

绝对是一个好主意,没有什么比开发人员每次都在Page_Load中绑定dataGrid而且还提交viewstate的页面更糟糕了!

如果您计划使用AJAX Extensions中的UpdatePanel,这也是一个非常好的主意,这意味着您在UpdatePanel请求期间提交的内容较少。

(请注意,UpdatePanel可以说是好的:P)

答案 5 :(得分:0)

_Viewstate会不必要地增加需要传输的字节数。 因此,除非下次要使用数据,否则最好将其关闭。