59054


C#、ASP.NETで画面を開発しています。  
タイトルの件、Page_Initで検索したマスタデータをPageクラスを継承したクラス変数に一時保存し、何かボタンを押したタイミングで一時保存したデータを参照すると、一時保存したデータがクラス変数を宣言した際の初期値に初期化されてしまいます。

これは、ASP.NETの仕様でしょうか？  
また、Page_Initで検索したデータをその後のイベントで使いまわしたい場合は、ビューステートやセッションに保存するのが一般的でしょうか？

よろしくお願い致します。


CC BY-SA 4.0
2019-09-14T02:15:15.817
59053
2019-09-14T02:48:23.323
9228
question
c# asp.net
ポストバック発生時Pageのクラス変数値は初期化されますか？


仕様です。最初にPageインスタンスが生成され、ポストバック時には最初のインスタンスのメソッドが呼ばれるわけではありません。仮にこの方式にしてしまうと、Webブラウザー側でウィンドウを複製しそれぞれのウィンドウが異なるリクエストを送信した場合にサーバー側の状態が破綻します。

Webブラウザーからリクエストがある度にPageインスタンスが再作成される仕様となっています。


CC BY-SA 4.0
2019-09-14T02:48:23.323
59054
2019-09-14T02:48:23.323
4236
59053
answer