public partial class Addition : System.Web.UI.UserControl
{
int Add1;
int Add2;
int answer;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
//Generates ramdom numbers for addition problem
Random oRand = new Random();
Add1 = oRand.Next(30);
Add2 = oRand.Next(30);
Label1.Text = Add1.ToString();
Label2.Text = Add2.ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
//Validates users answer
answer = Convert.ToInt32(TextBox1.Text);
if (Add1 + Add2 != answer)
Label3.Text = "InCorrect Answer";
else
Label3.Text = "Correct Answer";
}
}
过去30分钟我一直在关注这个问题,我知道它很简单,我很遗憾。当我执行程序并在TextBox1中放置正确的答案时,Label3仍然会生成“InCorrect Answer”。我知道这是补救措施,但我做错了什么?
由于
答案 0 :(得分:3)
在回发时(以及每次加载页面时)都会重新创建用户控件,因此当您设置Add1
和Add2
的值时,它们会在回发时丢失。
您应该使用容器ViewState
或Session
来保存这些值。
编辑:
或者@ IronMan84建议,只需使用标签(duh)。
答案 1 :(得分:1)
试试这个:
Add1 = Convert.ToInt32(Label1.Text);
Add2 = Convert.ToInt32(Label2.Text);
answer = Convert.ToInt32(TextBox1.Text);
if (Add1 + Add2 != answer)
Label3.Text = "InCorrect Answer";
else
Label3.Text = "Correct Answer";