在回发上创建对象的问题

时间:2013-02-16 16:00:53

标签: c# asp.net

我在ASP.net中创建对象时遇到问题

我的页面加载功能是:

public partial class hangMen : System.Web.UI.Page
{
abc ltr;
Words word = null;
static Label [] lbl = null;
static Button[] btn = null;
Game game;

protected void Page_Load(object sender, EventArgs e)
{

        if (Page.IsPostBack)
        {
            show_current_word();
            SetBord();

        }
        else
        {
            SetBord();
            SetWords(); 


        }

}
}

我的问题是: 我不知道我应该把它放在哪里 game = new Game();

如果我把它放在else部分,所以我得到null引用异常。 而且我也不想在每个回发后创建这个对象。

此对象计算玩家得分和点击“提示”并出错的次数

任何想法??

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您希望通过回发保留Game对象的实例...

为此,我建议您使用Session object

保存到会话:

Session["GameObj"] = game;

在下一次回发中恢复:

protected void Page_Load(object sender, EventArgs e)
{
   if (Session["GameObj"] != null)
   {
       game = (Game) Session["GameObj"];
   }
    ...

当然还有其他选项,例如将其保存在ViewState中。您应该阅读它们,看看哪一个更适合您的需求