まず、ViewState
ページ読み込みで を初期化します。以下に示すように、各ページのイベントにブレークポイントを設定します。
各イベントでのボタンクリックでデバッグを開始します。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ViewState["abc"] = "10";
}
}
protected override void OnPreInit(EventArgs e)
{
base.OnPreInit(e);
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
}
protected override void OnInitComplete(EventArgs e)
{
base.OnInitComplete(e);
}
protected override void OnPreLoad(EventArgs e)
{
base.OnPreLoad(e);
}
OnPreLoad
ViewState の永続化された値を提供し始めます。Init/InitComplete/PreInit のようなこのイベントの前に、ViewState の値は与えられません。
ポストバックが発生するSaveViewState()
と、新しい値がキャプチャLoadViewState()
され、ポストバック後に再入力されます。
Session と ViewState を比較するのはなぜですか?