2012-03-27 58 views
0

我想創建一個對象,然後將它保存在一個Session中,然後重定向到另一個頁面並使用會話中保存的對象。在會話中保存一個已經創建的對象

這是我的代碼,這似乎是錯誤的地方,因爲它不可操作。

PAGE 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"); 
    } 

PAGE 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(); 
     } 
     } 
+0

什麼是'fitnessClassList'和'addFitnessClass'是什麼?你有任何錯誤? – 2012-03-27 20:42:23

+2

你確定重定向被認爲是回發嗎?我的猜測是,代碼根本不會被執行。 – 2012-03-27 20:43:35

+0

我想你應該將addFitnessClass&UpdateListbox代碼移動到if的_then_分支。 – 2012-03-27 20:44:41

回答

1

如果你做一個重定向它不是一個回傳不再與代碼中添加不執行對象到列表中。運行一個調試器,你會看到。編輯: 也許會話狀態被禁用。在你的web.config中設置(默認):

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

謝謝你。我主要擔心的是,Session沒有把我傳遞給它的值(F變量) – 2012-03-27 20:50:38

+0

是否啓用了web.config中的會話狀態? – slfan 2012-03-27 20:54:20

+0

如果Session爲空,Session [「object」]將引發異常。如果有,則關閉sessionState。 – slfan 2012-03-27 21:01:28

相關問題