【问题标题】:Keeping track of number of button clicks跟踪按钮点击次数
【发布时间】:2013-06-29 00:47:07
【问题描述】:

假设我有一个带有验证码图像的页面。

我想让用户尝试输入3次代码,否则他不能再这样做了。

如何跟踪“确认”按钮被点击的次数。每次单击“确认”按钮时,都必须向服务器执行回发。

使用 JavaScript 不好,因为如果用户重新加载页面,计数器将设置为零。请问这个怎么做?

【问题讨论】:

    标签: c# asp.net button click


    【解决方案1】:

    这应该很简单。首先将计数器设置为零,然后在后续回帖中更新它:

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

    【讨论】:

    • 谢谢 :) 我没有想到要使用会话。非常感谢:)
    • 感谢 Michael 的帮助 :) 因此,即使用户从浏览器刷新页面,这也会跟踪按钮的点击次数。这是正确的吗?
    • @Matthew,是的,因为刷新浏览器窗口将被视为回发
    【解决方案2】:

    使用ViewState 存储号码。

    或者更好 - Session

    Session 的优势在于它存储在服务器 (AFAIK) 上,因此无法被篡改,并且即使在重新加载页面时它也会持续存在。

    【讨论】:

    • +1 表示 ViewState,请记住,如果用户从头开始重新进入此页面,它将被重置为零。为了保证它的安全,需要启用 ViewState 加密。只要这是可以接受的要求,我会选择它而不是 Session,以避免将其存储在您的服务器上的开销。
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多