在会话中保存已创建的对象

时间:2012-03-27 20:39:34

标签: c# asp.net session-state

我正在尝试创建一个对象,然后将其保存在一个Session中,然后重定向到另一个页面并使用Session中保存的对象。

这是我的代码,因为它无法正常运行,因此似乎在某处出错。

第1页

 public FitnessClassOpportunity GetData()
    {

        return new FitnessClassOpportunity(txtId.Text, txtDescription.Text, txtLocation.Text, 
                                           Convert.ToInt32(tx2.Text), dropDownDay.SelectedItem.ToString(), 
                                           txtTime.Text, Convert.ToInt32(txtDuration.Text), CheckBox1.Checked, 
                                           txtDatecompleted.Text, txtNumSession.Text);

    }



 protected void Button1_Click(object sender, EventArgs e)
    {
//result from breaking point: f has the data
            FitnessClassOpportunity f = GetData();
//result from breaking point: f still has the data but Session is still NULL
        Session["object"] = f;
         Response.Redirect("Default.aspx");
    }

第2页

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {

        }
        else 
        {
//add the object from the session to a list
      fitnessClassList.addFitnessClass((FitnessClassOpportunity)Session["object"]);
            UpdateListbox();
        }
      }

1 个答案:

答案 0 :(得分:1)

如果进行重定向,则不再是回发,并且不会执行将对象添加到列表的代码。运行调试器,你会看到。

编辑: 可能会禁用会话状态。在web.config中设置它(应该是默认值):

<system.web>
  <sessionState mode="InProc"/>
  ...
</system.web>