2010-12-07 6 views
1
私のWebアプリケーションで

私はこのようなセッションの状態をチェックしていますページのいずれかのページのロードも、セッションがnullではないときに表示されますこれが私のコードです...asp.netのセッションを確認していますか?

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

this私はこのようなセッションに値を割り当てているページです。私は を1つのボタンと1つのリンクボタンを取って、このようなコードを書いています。

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

しかし、それは "こんにちは"メッセージを表示しています 私はそこにある任意のispostback問題があることを助けることができます

+1

句読点を使ってください。 –

答えて

0

ページの読み込みがページが

を要求されるたびに実行された理由である(ときあなたのセッション!= null)の「こんにちは」画面に印刷されています。これは一度起こるだけですか?

のでPage.IsPostBack

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

@ m.edmondsonセッションが空であればチェックしたいdefault.aspx.ifセッションの値が "hi"のメッセージが表示されるようにリダイレクト –

+0

@Surya - ポストバック(default1.aspx)の別のページにリダイレクトしていますこれは「Hi」と表示されているページではありませんか? –

+0

@ m.edmondsonボタンのセッション値を割り当てています。リンクボタンではなく、default1.aspxページにリダイレクトします。セッションが空であればチェックします。セッション値が –

1

を探る場合は、セッション変数に値を代入するので、それが正常であるセッション変数は、「私は」nullでない場合は、「私」とのdefault.aspxにあなたが「HI」書きます。

だけ

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

にライン

Response.Write("hi"); 

を変更すると、あなたは、 "私の" セッション変数の値が表示されます。

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

が、私はそれが「こんにちは」に印刷されないように、セッションは、その後、クリアされることを期待する:あなたは別のボタンを追加し、ハンドラをクリックするとどう

1

何が起こったのか(私が推測する)セッションに何かを入れて決してクリアしていないということです。

Session.Abandon()は、セッション全体を消去します。この値だけをクリアするには、Session.Remove("my");を使用することもできます。

関連する問題