这可能是一个愚蠢的愚蠢问题,但为什么这不会超过2?
无论我点击多少次按钮,标签都会卡在2上。
protected void nextBtn_Click(object sender, EventArgs e)
{
questions = 1;
questions++;
qstnLbl.Text = questions.ToString();
}
标签应该从1开始,按下按钮添加2-3-4等数字。我错过了什么?
答案 0 :(得分:1)
网络是无国籍的。 questions
在每次回发时初始化为1,因此值始终为2;
请使用session更改代码,如下所示:
protected void nextBtn_Click(object sender, EventArgs e)
{
questions = 1;
if (Session["questions"] != null)
questions = (int)Session["questions"];
questions++;
Session["questions"] = questions;
qstnLbl.Text = questions.ToString();
}
在Web中维护状态的方法有很多种。请仔细阅读link以获取更多相关信息。
答案 1 :(得分:0)
即使在控制台或桌面应用程序中,这也行不通,因为每次点击都会将您的值重新初始化为1。
如其他答案所述,HTTP也是无状态的。
答案 2 :(得分:0)
增量值的方法是正确的,但它总是2,因为您在按钮点击时声明并为值变量1赋值。因此,当您单击按钮时,您将获得一个问号变量保持1,该变量将增加到2,并将显示在标签中。
所以,要解决这个问题,你必须使用能够永久保存你的问题变量的东西,除非你破坏那个东西。因此,您可以使用ViewState,Session或Cookie。
使用会话。
protected void nextBtn_Click(object sender, EventArgs e)
{
int questions = Session["questions"] ==null? 1:
Convert.ToInt32(Session["questions"]);
questions++;
Session["questions"] = questions;
qstnLbl.Text = questions.ToString();
}
同样,您可以使用ViewState或Cookie代替会话。