C# 在c中生成唯一的ID#

C# 在c中生成唯一的ID#,c#,session,variables,C#,Session,Variables,我试图从1开始生成一个唯一的ID,但编号保持不变。。 我正在尝试使用session变量,这样它可以像1,2,3,4 主页: protected void calculateButton_Click(object sender, EventArgs e) { int bookingID = 0; bookingID += 1; bookingIDTextBox.Text = bookingID.ToString(); } protected void confirmButton_

我试图从1开始生成一个唯一的ID,但编号保持不变。。 我正在尝试使用session变量,这样它可以像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");
}

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

在方法外部声明变量

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

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

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

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

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

// accessed from other classes:
Globals.Counter++;

显然你有一个会议。为什么不增加会话上的数字?您的最新身份已为人所知。请注意,每当web应用回收时,此身份将被重置。您可能希望将此号码保存在数据库中,或者保存在重新启动后仍然有效的数据库中。谢谢。我想一切都好了。