2009-10-05 51 views
1

我正在查看ASP.NET MVC源代码,并且未发现ViewState从应用程序中删除的位置。ASP.NET MVC如何从应用程序中移除ViewState?

(视图状态是不仅仅是禁用,它是在应用程序中所有的网页移除)

谢谢!

更新:

是删除视图状态隐藏字段可能吗?

回答

5

这很简单;它不会被删除。您仍然可以设置和阅读ViewState。只是不要指望它包含以前请求中的任何内容。这实际上很方便,因为这意味着在ViewState中存储其属性值的某些ASP.NET服务器控件可以在ASP.NET MVC中工作。只要将ViewState从一个请求保存到另一个请求并不重要,这些控件仍然可以正常工作。

当然,从一个请求到另一个请求中删除ViewState的持久性使其变得无用。这就是人们普遍认为ASP.NET MVC“没有ViewState”的原因。这在技术上并不准确; ViewState实际上确实存在;它只是不存在于对任何事物都有用的形式中。

+0

据我所知,ViewState是永远不会被删除的ASP.NET Web窗体控件。响应我的更新:在“正常的ASP.NET”(PostBack)不可能删除ViewState隐藏输入,为隐藏它在HTML页面中,只需删除runat =“服务器”的形式。谢谢! – 19WAS85 2009-10-05 20:38:59

+0

ASP.NET MVC将永远不会将ViewState字段放入您的页面。 WebForms *设计器*会在您的MVC页面添加此字段,但是,这是许多不使用MVC视图的原因之一。删除这个隐藏的输入是完全安全的。 – 2009-10-05 20:43:10

4

MVC不使用视图状态 - 它是完全无状态的(因为网络应该是这样)。

您可能需要稍微改变一下您的想法,并考虑在请求 - 响应模式下运行的应用程序(它始终存在,但标准的asp.net使用viewstate尝试“欺骗”开发人员,如果您愿意,思考或编码,就好像一个页面有状态一样)。

1

ViewState不是ASP.NET MVC页面生命周期的一部分。 ViewState仅在ASP.NET WebForms应用程序中可用。

这也意味着,你不能够使用其中大部分依靠的ViewState

相关问题