在会话中添加两个数字

时间:2012-04-11 15:32:44

标签: c# asp.net

我在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,依此类推。

感谢。

2 个答案:

答案 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,然后将其添加到新的随机数并将其存储回会话变量中。

如果那里没有任何东西,你只需要存储新的随机数。