誰かがViewStateとSessionの違いを説明できますか?
具体的には、ページのライフサイクル全体でオブジェクトを利用できるようにする(ポストバックを通じてメンバーを継続的に設定する)ための最良の方法を知りたいです。
私は現在Sessionsを使用してこれを行っていますが、それが最善の方法かどうかはわかりません。
例えば:
SearchObject searchObject;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
searchObject = new SearchObject();
Session["searchObject"] = searchObject;
}
else
{
searchObject = (SearchObject)Session["searchObject"];
}
}
これにより、ページの他の場所でsearchObjectを使用できるようになりますが、プロパティなどを変更した場合にセッション変数をリセットする必要があるため、面倒です。
ページが読み込まれるたびに.NETがオブジェクトを再インスタンス化せず、Pageクラスのグローバルスコープに配置するために、これを行うためのより良い方法があるはずだと思いますか?