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");
}

2 ページ目:

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 に答える