[求助]ASP.NET中简单的网页数字验证问题

「已注销」 2012-05-05 12:08:45
namespace MyDesign
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.check_Num.Text = rand_checkNum();
}

protected string rand_checkNum()
{
Random r = new Random();
int[] num = new int[4];
int n;
string randNum="";
for (int i = 0; i < 4; i++)
{
n= r.Next(0,9);
num[i] = n;
}
foreach (int m in num)
{
randNum += m.ToString();

}
return randNum;
}

protected void btn_OK_Click(object sender, EventArgs e)
{
if (this.txtCheck_Num.Text !=this.check_Num.Text)
{
errCheck.Text = "很遗憾!";
}
else
{
errCheck.Text = "输入正确!";
}
}
}


}
后台代码如上,启动浏览器查看,效果正常。
但是在点button的时候。一直无法正确验证。无论输入验证数跟生成的随机数是否一致,都显示“很遗憾”。是哪里出问题了呢?
初学ASP.NET,想做一个B/S系统。希望各位大神不吝赐教!
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2012-05-05
  • 打赏
  • 举报
回复
因为单击按钮后,先会执行Page_Load,重新生成了一个验证码,然后再执行按钮的Click方法。
dalmeeme 2012-05-05
  • 打赏
  • 举报
回复
改为:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
this.check_Num.Text = rand_checkNum();
}
dalmeeme 2012-05-05
  • 打赏
  • 举报
回复
是的,都会。
「已注销」 2012-05-05
  • 打赏
  • 举报
回复
谢谢哦,稍微想再问下,是不是所有的click事件都会触发一次页面刷新呢?[Quote=引用 2 楼 的回复:]

因为单击按钮后,先会执行Page_Load,重新生成了一个验证码,然后再执行按钮的Click方法。
[/Quote]

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧