我正在使用两个Web控件。Web 控件 A 包括 Web 控件 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 检索的对象是空的。因此,当执行另一个 Web 控件时,不会存储该对象。我可以存储它吗?我也尝试了会话,但它给了我以下错误:"错误消息:对象引用未设置为对象的实例"
为了从视图状态中检索值,我使用了这个:
public void Modify(int i)
{
object o = (object)ViewState["o"]; //result is null :(
}
当您停留在同一页面上时,视图状态将保持不变,执行回发操作(单击同一页面上的按钮)
如果您丢失了视图状态值 =>则可能会在应用程序周围导航
在导航的情况下,您可以使用会话变量
Session["o"] = o;