2013-08-26 37 views
0

我成立了上預訂會話變量form.aspx像這樣:會話變量錯誤巴赫預訂

protected void confirmImageButton_Click(object sender, ImageClickEventArgs e) 
    { 
     Session["confirmBooking"] = "confirm"; 
     Session["beachBach"] = beachBachRadioButtonList.SelectedItem.Text; 
    } 

,我轉移到我的其他網頁像這樣:

protected void Page_Load(object sender, EventArgs e) 
{ 

    { 
     if (Session["beachBach"] != null) 
     { 

      numberOfBeachBookingInteger += 1; 
      beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

     } 

我試圖添加1到beachBach會話變量,每當用戶按確認按鈕....但是,當我開始調試它,而不是加1,它將2添加到標籤。

有人可以請幫我..謝謝

+0

當頁面發回變量'numberOfBeachBookingInteger'的值可能無法使用時,Http是一種較少的協議。你確定你正在做的事是正確的嗎? –

+0

@Nhoc Bem你確定你正在清理你的會話嗎? –

回答

0

試試這個

protected void Page_Load(object sender, EventArgs e) { 

{ 
    if(!IsPostBack) 
    { 
    if (Session["beachBach"] != null) 
    { 

     numberOfBeachBookingInteger += 1; 
     beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

    } 
    } 
+0

謝謝.... 順便說一句,你如何創建一個標籤的靜態詮釋,以便當我調試它時,它開始於「0」而不是空白 –

+0

在回答你的問題之前,請你解釋你的邏輯.. ?笏完全是你試圖完成 –

+0

請標記這個答案是正確的,通過點擊勾選標記,如果它幫助你 –

0
protected void Page_Load(object sender, EventArgs e) 
{ 

    { 
     if (Session["beachBach"] != null) 
     { 

      numberOfBeachBookingInteger += 1; 
      beachBachLabel.Text = numberOfBeachBookingInteger.ToString(); 

     } 

後,我們來到這個網頁,那麼會發生什麼?我們是否有任何事件導致postback在此頁面? 如果確實存在,則會再次將1添加到您的session。 嘗試使用!IsPostBack屬性。

+0

我把代碼放在取消按鈕,以便當用戶按下取消按鈕時,session.clear將被執行.... –

+0

@NhócBem嗯,這是好的,但只有一個場景(但它只是一個好奇心,我不知道完整的邏輯)如果用戶來到這個最後一頁,他不會取消和收益,如果他打開一個新選項卡並繼續到同一頁面,這次他確認了什麼是'numberOfBeachBookingInteger'值?我的意思是用戶沒有清除第一個選項卡中的會話,現在在第二個選項卡中,您的'session'不爲null,因此可能會再次導致'numberOfBeachBookingInteger'值增加。請告訴我我是否正確。 –