我在ASP.net / C#中进行Web应用程序,其中在Page_Load事件上生成随机数(num1)。在网页中有一个按钮,每当用户点击该按钮时,就会生成一个新的随机数(num2),并在Button_Click事件中将其添加(+)到前一个。这继续无限进行(继续为最后一次添加添加新的随机数)。我尝试过使用会话我没有找到明确的例子。我非常感谢您的建议和帮助。
代码:
private static Random random = new Random();
private int randomNumber(int min, int max)
{
return random.Next(min, max);
}
protected void Page_Load(object sender, EventArgs e)
{
number1 = randomNumber(1, 10);
}
protected void Button1_Click(object sender, EventArgs e)
{
int number2 = randomNumber(1, 10);
Session["number_x"] = number2;
number2 += number1;
}
让我们说在page_load上生成的随机数是4.然后用户点击生成一个新的随机数的按钮让我们说5.现在应该添加5 = 4 = 9.如果用户再次点击按钮再次生成一个新数字说5,所以现在会话应该有14,依此类推。
感谢。
答案 0 :(得分:4)
我想你想做这样的事情:
protected void Button1_Click(object sender, EventArgs e)
{
lock (Session.SyncRoot)
{
int numberInSession = (int) Session["number_x"];
int number2 = randomNumber(1, 10);
int newNumber = numberInSession + number2;
Session["number_x"] = newNumber
}
}
答案 1 :(得分:2)
嗯,如果我正确地读你的问题,这应该有用:
protected void Button1_Click(object sender, EventArgs e)
{
int number2 = randomNumber(1, 10);
if(Session["number_x"] != null)
{
int number1 = Int.Parse(Session["number_x"]);
Session["number_x"] = number1 + number2;
}
else
{
Session["number_x"] = number2;
}
}
基本上,您必须检查会话变量中是否已有值。
如果会话变量中已存在某些内容,则需要将其解析为int
,然后将其添加到新的随机数并将其存储回会话变量中。
如果那里没有任何东西,你只需要存储新的随机数。