2013-07-02 203 views
0

我有一些代碼記錄按鈕被點擊的次數。事實上,當頁面第一次加載時,計數器被設置爲0.在每次回發時,計數器增加1.我在頁面上只有一個按鈕。代碼邏輯中的錯誤

這背後的主要思想是允許用戶輸入一些細節4次。如果他四次輸入無效細節,他將被重定向到一個錯誤頁面。否則,他會被重定向到確認頁面。

這是我的代碼:

if (!this.IsPostBack) 
{ 
    Session["Count"] = 0; 
} 

else 
{ 
    if (Session["Count"] == null) 
    { 
     Session.Abandon(); 
     Response.Redirect("CheckOutErrorPage.htm"); 
    } 

    else 
    { 
     int count = (int)Session["Count"]; 

     if (count == 3) 
     { 
      Session.Abandon(); 
      Response.Redirect("CheckOutFailure.aspx"); 
     } 

     else 
     { 
      count++; 
      Session["Count"] = count; 
     } 
    } 
} 

一切正常,因爲它應該只是如果用戶連續3次輸入無效的詳細信息,然後他進入4日時的有效信息,用戶會被重定向到錯誤頁面(因爲他已經嘗試了4次)而不是確認頁面。

我該如何解決這個問題?

+3

爲什麼不把'count == 3'改成'count == 4'? – Bobson

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+0

這不是解決你的問題,但這聽起來像可怕的可用性,爲什麼要關心如果有人輸入錯誤(只要他們不是惡意)? – Matthew

回答

2

我在你的代碼中看不到任何成功選項。

我會猜測它是在這段代碼之後,這段代碼在它檢查它是否有效之前執行,因此無論如何你都嘗試了#4的錯誤路徑。

+0

你說得對。對不起,我一整天都在忙着工作,我正在犯一些愚蠢的錯誤。謝謝 :) – Matthew