0

我试图从 1 开始生成一个唯一 ID,但数字保持不变。我正在尝试使用会话变量,所以它可以像 1、2、3、4 一样......

主页:

protected void calculateButton_Click(object sender, EventArgs e)
{
 int bookingID = 0;
    bookingID += 1;
    bookingIDTextBox.Text = bookingID.ToString();
}
protected void confirmButton_Click(object sender, EventArgs e) 
{
    Session["confirmBooking"] = "confirm";
    Session["bookingID"] = bookingIDTextBox.Text;
    Response.Redirect("MainBookingForm.aspx");
}

第二页:

protected void newBookingButton_Click(object sender, EventArgs e)
{
    string bookingRef = (string)(Session["bookingID"]);
    Session["bookingRef"] = bookingRef;
    Response.Redirect("BookingForm.aspx");
}
4

2 回答 2

1

每次按下按钮时都在声明变量,因此它始终为 1

在方法外声明变量

int bookingID = 0;
protected void calculateButton_Click(object sender, EventArgs e)
{ 
    bookingID += 1; // You can also use bookingID++
    bookingIDTextBox.Text = bookingID.ToString();
}

编辑请注意,当您重新启动应用程序时它将被重置,您可能希望将其存储在某处(应用程序设置/数据库等)

于 2013-09-09T08:13:24.740 回答
1

您可以使用 Application 对象 - 它是 HttpContext 的一部分,可在任何页面上直接访问。

如果您不想使用它,您可能需要编写一个包含静态成员的 Globals 类(或您喜欢的任何名称)。

public class Globals
{
  public static int Counter { get; set;}
}

// accessed from other classes:
Globals.Counter++;
于 2013-09-09T08:18:51.823 回答