执行另一个webcontrol时,无法将对象存储在webcontrol中

时间:2013-01-31 13:57:17

标签: c# asp.net viewstate web-controls

我正在使用两个网页控件。 Web控件A包含webcontrol B.当调用webcontrol A时,它会自动调用webcontrolB。 WebcontrolB将值传递给webcontrolA的方法Modify()。我想存储一个对象,我使用viewstate:

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

        }
    }

问题是当我返回webcontrolA时,我从ViewState检索的对象为null。因此,当执行另一个webcontrol时,不会存储该对象。何我可以存储它?我也试过Session但是它给我带来了以下错误:“错误消息:对象引用没有设置为对象的实例”

从viewstate中检索值我使用了这个:

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

1 个答案:

答案 0 :(得分:0)

当您停留在同一页面时,ViewState会保留,您可以进行回发操作(点击同一页面上的按钮)

如果您丢失了viewstate值=>您可以在应用程序中导航

在导航的情况下,您可以使用会话变量

Session["o"] = o;