[求助]ASP.NET中简单的网页数字验证问题
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系统。希望各位大神不吝赐教!
[解决办法]
改为:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
this.check_Num.Text = rand_checkNum();
}
[解决办法]
因为单击按钮后,先会执行Page_Load,重新生成了一个验证码,然后再执行按钮的Click方法。