2012-03-27 28 views
0

Ich versuche, ein Objekt zu erstellen und speichern Sie es dann in einer Sitzung, dann auf eine andere Seite umleiten und verwenden Sie das Objekt in der Sitzung gespeichert.Speichern Sie ein bereits erstelltes Objekt in der Sitzung

Hier ist mein Code, der irgendwo falsch zu sein scheint, weil er nicht funktioniert.

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

SEITE 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

Was sind 'fitnessClassList' und was' addFitnessClass'? Haben Sie Fehler? –

+2

Sind Sie sicher, dass die Weiterleitung als PostBack betrachtet wird? Meine Vermutung wäre, dass der Code einfach nicht ausgeführt wird. –

+0

Ich denke, Sie sollten den addFitnessClass & UpdateListbox Code in den _then_ Zweig des if verschieben. –

Antwort

1

Wenn Sie eine Umleitung es kein Postbacks mehr ist und der Code das Objekt zu der Liste hinzufügen wird nicht ausgeführt. Führen Sie einen Debugger aus und Sie werden sehen.

EDIT: Vielleicht Sitzungszustand ist deaktiviert. Stellen Sie dies in Ihrer web.config ein (sollte standardmäßig sein):

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

Vielen Dank dafür. Mein Hauptanliegen war, dass Session nicht den Wert nimmt, den ich an sie übergebe (die F-Variable) –

+0

haben Sie den Sitzungsstatus in Ihrer web.config aktiviert? – slfan

+0

Sitzung ["Objekt"] würde eine Ausnahme auslösen, wenn Sitzung null war. Wenn dies der Fall ist, haben Sie sessionState deaktiviert. – slfan

Verwandte Themen