0

2 つの Web コントロールを使用しています。Web コントロール A には、Web コントロール B が含まれています。Web コントロール A が呼び出されると、自動的に webcontrolB が呼び出されます。WebcontrolB は、webcontrolA のメソッド Modify() に値を渡します。オブジェクトを保存したいのですが、ビューステートを使用してそれを行います:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            object o = Object;
            ViewState["o"] = o;

        }
    }

問題は、webcontrolA に戻ったときに、ViewState から取得したオブジェクトが null であることです。そのため、別の Web コントロールが実行されると、オブジェクトは保存されません。保存していいですか??セッションも試しましたが、次のエラーが表示されました:「エラーメッセージ:オブジェクト参照がオブジェクトのインスタンスに設定されていません」

ビューステートから値を取得するには、これを使用しました:

public void Modify(int i)
{    
   object o = (object)ViewState["o"];  //result is null :(
}
4

1 に答える 1

0

ViewState は、同じページに留まると保持され、ポストバック操作を行います (同じページのボタンをクリックします)。

ビューステートの値を失った場合 => アプリケーションをナビゲートする可能性があります

ナビゲーションの場合、セッション変数を使用できます

Session["o"] = o;
于 2013-01-31T14:03:17.403 に答える