Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 跟踪按钮点击次数_C#_Asp.net_Button_Click - Fatal编程技术网

C# 跟踪按钮点击次数

C# 跟踪按钮点击次数,c#,asp.net,button,click,C#,Asp.net,Button,Click,假设我有一个带有验证码图像的页面 我想让用户尝试输入代码三次,否则他就不能再这样做了 如何跟踪“确认”按钮被单击的次数。“确认”按钮必须在每次单击时执行回发到服务器的操作 使用JavaScript并不好,因为如果用户重新加载页面,计数器将设置为零。如何做到这一点?请使用存储号码 或者更好 Session的优点是它存储在服务器(AFAIK)上,因此不会被篡改,而且即使在重新加载页面时它也会保持不变。这应该是非常简单的。首先将计数器设置为零,然后在后续回发时更新: if (!this.IsPostB

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

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

如何跟踪“确认”按钮被单击的次数。“确认”按钮必须在每次单击时执行回发到服务器的操作

使用JavaScript并不好,因为如果用户重新加载页面,计数器将设置为零。如何做到这一点?请使用存储号码

或者更好


Session
的优点是它存储在服务器(AFAIK)上,因此不会被篡改,而且即使在重新加载页面时它也会保持不变。

这应该是非常简单的。首先将计数器设置为零,然后在后续回发时更新:

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

谢谢:)我没想过要用session来做。非常感谢:)感谢您的帮助Michael:)这样即使用户从浏览器刷新页面,也可以跟踪按钮的点击次数。这是否正确?@Matthew,是的,因为刷新浏览器窗口将被视为回发。ViewState为+1,请记住,如果用户从头开始重新进入此页面,它将被重置为零。为了保证安全,需要启用ViewState加密。只要需求可以接受,我会选择它而不是会话,以避免将其存储在服务器上的开销。