1)ViewStateを使用する場合は、ASPXページにサーバー側フォームタグ()が必要です。フォームフィールドは、ViewState情報を含む非表示フィールドがサーバーにポストバックできるようにするために必要です。そして、それはサーバー側のフォームでなければならないので、ページがサーバー上で実行されるときにASP.NETページフレームワークが隠しフィールドを追加することができます。
2)ページ自体が20バイト程度の情報をViewStateに保存します。この情報は、ポストバック時にPostBackデータとViewState値を正しいコントロールに配布するために使用されます。したがって、ページまたはアプリケーションでViewStateが無効になっていても、ViewStateに残りのバイトがいくつか表示されることがあります。
3)ページが返信されない場合は、サーバーサイドタグを省略してページからViewStateを削除できます。
http://msdn.microsoft.com/en-us/library/ms972427.aspx
これは、制御状態です。
あなたが本当にビューステートを取り除きたいとページのために、または非常に注意してください、コードビハインドが
class MyPage : Page {
private class DummyPageStatePersister : PageStatePersister {
public DummyPageStatePersister(Page p) : base(p) {}
public override void Load() {}
public override void Save() {}
}
private DummyPageStatePersister _PageStatePersister;
protected override PageStatePersister PageStatePersister {
get {
if (_PageStatePersister == null)
_PageStatePersister = new DummyPageStatePersister(this);
return _PageStatePersister;
}
}
// other stuff comes here
}
から派生する任意のクラスのコードビハインドでこのコードを使用することができますControlStateをした場合あなたがコントロールとの契約に違反しているので、これを行うとき。 MSDNは、制御状態が常に利用可能であることを明示的に述べています。しかし、実際には、それは私のために働いています。
編集:私はdownvotedたので 、私は再び指摘したい:あなたは、あなたがやっている内容を正確に把握しない限り、これをしないでください。私の場合、ほとんどのアプリケーションはクライアント側のjavascriptで書かれていましたが、ポストバックが発生した数少ない場所では、常に値を取得するためにRequest.Formコレクションを使用しました。 これを行うと、単純なレンダリング以外の目的でサーバー側のコントロールを使用しないでください。
マークアップを提供してください。 –
2つのコントロール、1つはチェックボックス、もう1つはテックスボックスでページを作成しました。コントロールとページのビューステートを完全に無効にしました。しかし、私はまだ隠れ変数のビューステートを含むレンダリングを参照してください