2010-12-07 78 views
1

在我的web應用程序我檢查會話狀態這樣的..在頁面加載,甚至頁面之一,但它是每次會議不爲空則顯示看,這是我的代碼...在asp.net中檢查會話?

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

這是我在哪裏這樣的分配值會話我正在 一個按鈕和一個鏈接按鈕,並寫出這樣的代碼

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問題是th ERE

+1

請學習使用標點符號! – 2010-12-07 14:55:51

回答

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」消息應顯示 – 2010-12-07 14:46:15

1

,因爲您的值分配給會話變量「我」和Default.aspx中你寫的「喜」如果會話變量「我的」不爲空,這是正常。

只需更改行

Response.Write("hi"); 

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

,你會看到會話變量的值, 「我的」。

1

如果添加另一個按鈕,然後單擊處理程序是什麼:

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

我預計會議將隨後清零,以使得「喜」不打印。

發生了什麼(我猜)是你在會話中放了一些東西,而且從來沒有清除它。

注意:該Session.Abandon()清除整個會話。您也可以使用Session.Remove("my");來清除此值。