请帮助我找出此代码出了什么问题:

我有一个按钮可见的ASP.NET页。

用户单击它时,它将实例化MyClass(其实现位于AppCode目录中)并变为不可见(button2变为可见)。

当我单击button2时,它引发“对象引用未设置为对象的实例”异常。

似乎是什么问题?

{
    public MyClass noviTest;

    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        noviTest = new MyClass(TextBox1.Text);
        Button1.Visible = false;
        Button2.Visible = true;
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        Label1.Text=noviTest.getID; //this is the critical line
    }
}

最佳答案

由于回发后,不会重新创建对MyClass的noviTest引用。

您可以将其添加到viewstate中以保留对其的引用。 (假设MyClass是可序列化的)。
在Button1_Click中:

ViewState("noviTest") = noviTest;


然后在Button2_Click中:

var noviTest = ViewState("noviTest");

09-07 00:32