2016-05-28 27 views
1

なぜなら、Sessionはアプリケーション全体で状態を保持できるため、ViewStateを使用する理由は疑いがあります。それでは、なぜ単一のPageにのみ状態を保持できるViewStateが必要なのでしょうか?いつセッションでViewStateを使用することを選択できますか?

+0

'ViewState'はasp.net-mvcではなくWebフォームです! –

+0

まあ、セッション全体で状態を記憶したくないかもしれません。ビューステートは、ページ内の非表示フィールドを介して送信され、セッションはCookieを介して送信されます。詳細については、[ここ](http://stackoverflow.com/questions/733482/what-is-the-difference-between-sessionstate-and-viewstate)を参照してください。 – Rob

答えて

2

最初の事は最初

ビューステートwebforms内の特定のページの情報ですが何であるかを知ることです。隠しフィールドに格納されます。これは、ページが最後に行ったことをページが記憶していることを維持するために使用されます。

セッション 特定のsession.i.eに関連する情報です。特定のブラウザを使用使用していないためには、クラスタFである場合には、今、あなたの質問

に来

......すべてとして

が彼らの特定の長所と短所を持っている特別ViewSateは、より多くの詐欺であるI MVCが導入されて以来の推測です。
いつものようにそのページがポストバックしたときに覚えておく値を格納するのに、ページがポストバック段階にあるときに値を格納するのに、ユーザコントロールのすべての値を削除することができる。 asp.netのLabelTextBoxのようになります。したがって、あなたが持っていた値をに保つために、true セッションは、ページ間を移動したいときに使用されます。すべてのページの特定の値を保持します。その場合には :たとえば:あなたは私がタイプだったしながら、あなたが質問変えてきたように、彼はauthorizationまたはauthentication

更新

のいくつかの種類を必要とするすべてのページを訪問することができますので、1セッションでUserIdを保ちます セッションは特定の時間ですが、Viewstateはそうではありません。Viewstateは一時的な保存メカニズムです。 を使用するControlsは、stateが隠れた入力としてhtmlページにレンダリングされます。これは、どのような方法であなたを助ける、約ユーザーがブラウザの別のタブでアプリケーションの複数のインスタンスを開いた場合、あなたはそれの

1

に使用を取得します否決心配しないで、

・ホープセッションに保存されているデータは、それらのすべてで共有されます(これを避けるためにsomething specialが実行されている場合を除く)。セッション変数の値を変更する1つのインスタンスは、他のインスタンスによって保存された同じ変数を上書きし、データの混在を引き起こします。 ViewStateを使用すると、各インスタンスが他のインスタンスの影響を受けないようになります。

関連する問題