2010-12-07 8 views
1

in meiner Web-Anwendung ich bin Überprüfung des Sitzungsstatus wie folgt .. in Seitenlade sogar von einer der Seite, aber es ist jedes Mal Sitzung nicht null zeigt sehen dies mein Code ...Sitzung in asp.net überprüfen?

if (Session["my"] != null) 
{ 
    Response.Write("hi"); 
} 
else 
{ 
    Response.Redirect("default.aspx"); 
} 

dies ist die Seite, wo ich Wert wie folgt auf die Sitzung am Zuweisung i eine Taste und eine Link-Taste nehme und den Code wie dieser

protected void btn_Click(object sender, EventArgs e) 
{ 
    Session["my"] = "surya"; 
    Response.Redirect("default1.aspx"); 
} 

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("default1.aspx"); 
} 

schreiben, aber jedes Mal, wenn ich sie auf meine ich auch auf den Link zeigt Knopf es zeigt "hallo" Nachricht können Sie mir helfen ist dort irgendein ispostback Problem ist th ere

+1

Lernen Sie, Interpunktion bitte zu verwenden! –

Antwort

0

Laden der Seite wird jedes Mal ausgeführt, die gewünschte Seite

Weswegen (wenn die Sitzung! = null) „Hallo“ auf dem Bildschirm gedruckt wird. Willst du das nur einmal?

Wenn ja erkunden Page.IsPostBack

private void Page_Load() 
{ 
    if (!IsPostBack) 
    { 
     // Will only happen if its not a postback 
     // (first request) 
    } 
} 
+0

@ m.edmondson Ich möchte überprüfen, ob die Sitzung leer ist, es ist redirect die default.aspx.if Sitzung enthält den Wert "hi" Nachricht sollte –

+0

@Surya anzeigen - Sie sind auf eine andere Seite auf Postback (default1.aspx) umleiten Sie sind sicher, das ist nicht die Seite, die Sie sehen "Hallo" auf? –

+0

@ m.edmondson Ich bin Session-Wert in Button und nicht in Link-Button zuweisen und umleiten zu default1.aspx Seite, wo ich Sitzung überprüfen, wenn es leer ist redirect to default.aspx Seite, wenn der Sitzungswert ist –

1

Es ist normal, weil Sie einen Wert für die Session-Variablen zuweisen "mein" und in default.aspx Sie schreiben "hallo", wenn die Session-Variable "my" nicht null ist .

Gerade die Zeile

Response.Write("hi"); 

zu

Response.Write(Session["my"].ToString()); 

und Sie werden den Wert der Session-Variablen "mein" sehen.

1

Was passiert, wenn Sie eine andere Taste hinzufügen und klicken Sie auf Handler:

protected void Button2_Click(object sender, EventArgs e) 
{ 
    Session.Abandon(); 
    Response.Redirect("default1.aspx"); 
} 

Ich erwarte, dass die Sitzung dann gelöscht werden, so dass das „Hallo“ wird nicht gedruckt.

Was passiert ist (denke ich) ist, dass Sie etwas in die Sitzung setzen und es nie gelöscht.

Hinweis: Session.Abandon() löscht die gesamte Sitzung. Sie können auch Session.Remove("my"); verwenden, um nur diesen Wert zu löschen.