web-dev-qa-db-ja.com

.aspxページのViewStateを無効にする方法は?

Webアプリケーション内の.aspxページのViewStateを完全に無効にする必要があります。私はさまざまなブログを読みましたが、私が理解していることは、<%@ Page EnableViewState="false" ...%>、これは機能していません。

ページ内のすべてのコントロールのViewStateを無効にするのにこれで十分ですか?または、追加の変更を加える必要がありますか?その場合は明記してください。 .aspxページ内の単一のコントロールでもViewStateを有効にしたくない

16
Mridul Raj

私は引用符を次のようにする必要があります:

EnableViewState="false"

それとは別に、非表示のフィールドがまだ表示されている場合、それらはASP.Netによって使用されます。あなたは見るかもしれません:

Page.EnableViewStateプロパティ

EnableViewStateがfalseの場合でも、ASP.NETがポストバックを検出するために使用する非表示のビューステートフィールドがページに含まれている可能性があります。

12
Habib

ビューステートを無効にする

  1. マシンレベル- machine.config でマシンレベルのビューステートを無効にすると、Webサーバー上のすべてのアプリケーションのViewStateが無効になります。
<Machine.config>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</Machine.config>
  1. アプリケーションレベル-/web.configファイル。
<configuration>
   <system.web>
      <pages enableViewState="false" />
   </system.web>
</configuration>
  1. Page Level-上部の特定のaspxファイルのビューステートを無効にします。

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

  1. コントロールレベル-特定のコントロールのViewStateを無効にできます。

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

15
Johnny

本当にポストバックが必要ない場合は、ページからフォーム要素を削除できます。これにより、ビューステートが完全に削除されます。

3
albattran