完全禁用Web应用程序的视图状态



我注意到,即使我在应用程序级别(<pages enableViewState="false"/>)或页面级别(页面属性中的EnableViewState="false")禁用ViewState,您仍然可以在页面源中找到ViewState的隐藏字段:

     <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="NSe2ZpTF4OoGVDqwwtGVO+/liqfw9gUFmsPSD0n169Su3I6VwhG8xgVaSe0iTUfiPp1x0FbW9q47hkfxgDCvxjd2Z9RKo7N+WljNcEezg4Q=" />

为什么在这种情况下它仍然存在?ASP.net在其中存储了什么?

注意,自Asp.Net 2.0以来,__VIEWSTATE隐藏字段不仅存储ViewState,还存储ControlState

控件状态类似,但独立于常规视图状态。控件状态无法关闭,因此,如果页面上有任何需要控件状态的控件,则会导致__VIEWSTATE隐藏字段出现在呈现的标记中。

有关控制状态的详细信息,请参阅MSDN上的此页。

最新更新