16

我需要在我的 Web 应用程序中完全禁用 .aspx 页面的 ViewState。我浏览了不同的博客,我的理解是我们必须设置<%@ Page EnableViewState="false" ...%>,但这不起作用。

这足以禁用页面内所有控件的 ViewState 吗?或者我应该做任何额外的修改?如果是这样,请指定它们。我不希望为 .aspx 页面中的单个控件启用 ViewState

4

3 回答 3

18

禁用视图状态

  1. 机器级别- 在machine.config中禁用机器级别的视图状态,将禁用 Web 服务器上所有应用程序的 ViewState。
<Machine.config>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</Machine.config>
  1. 应用程序级别- 您可以禁用文件中所有页面的 ViewState /web.config
<configuration>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</configuration>
  1. 页面级别- 禁用顶部特定 aspx 文件的视图状态。

<%@ Page Language="C#" .. EnableViewState="false" .. %>

  1. 控制级别- 您可以禁用特定控件的 ViewState。

<asp:TextBox EnableViewState="false" ID="Name" runat="server"></asp:TextBox>

于 2016-09-23T11:09:31.743 回答
14

我认为引号应该是:

EnableViewState="false"

除此之外,如果您仍然看到隐藏字段,那么它们将被 ASP.Net 使用。你可能会看到:

Page.EnableViewState 属性

即使 EnableViewState 为 false,页面也可能包含一个隐藏的视图状态字段,ASP.NET 使用该字段来检测回发。

于 2012-10-03T06:09:59.807 回答
3

如果您真的不需要回发,您可以从页面中删除表单元素,这将完全删除视图状态。

于 2012-10-03T07:17:58.007 回答