2013-07-01 63 views
2

讓我們假設我有一個帶有驗證碼圖片的頁面。記錄按鈕點擊次數

我想讓用戶嘗試輸入三次代碼,否則他不能再這樣做。

我該如何跟蹤「確認」按鈕被點擊的次數。每次點擊時,「確認」按鈕都必須對服務器執行回發。

使用JavaScript並不好,因爲如果用戶重新加載頁面,計數器將被設置爲零。這怎麼能做到呢?

回答

5

這應該是非常簡單的。首先,計數器設置爲零,然後更新它在隨後的後背上:

if (!this.IsPostBack) { Session["RetryCount"] = 1; } 
else 
{ 
    int retryCount = (int)Session["RetryCount"]; 
    if (retryCount == 3) { // do something because it's bad } 
    else { retryCount++; Session["RetryCount"] = retryCount; } 
} 
+0

謝謝:)它沒有通過我的思想去使用會話。非常感謝:) – Matthew

+0

感謝您的幫助Michael :)因此,即使用戶從瀏覽器刷新頁面,也會記錄按鈕點擊次數。它是否正確? – Matthew

+0

@Matthew,是的,因爲刷新瀏覽器窗口**將被視爲回發**。 –

4

使用ViewState來存儲號碼。

或更好 - Session

Session的優勢在於它存儲在服務器(AFAIK)中,因此它不會被篡改,並且即使在重新加載頁面時它也會保留。

+1

+1的ViewState,牢記的是,如果用戶從頭開始重新進入該頁面,它將被複位至零。爲了保證安全,ViewState加密需要啓用。只要這是可接受的要求,我會選擇在會話,以避免這種存儲在您的服務器上的開銷。 –