-3

それぞれがセッションを保持するボタンがあります。ユーザーはいずれかのボタンをクリックする必要があり、次のページでクリックしたデータを表示できます。これが私のコードビハインドです:

public partial class Welcome_Proton : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button3_Click(object sender, EventArgs e)
{
    Session["carA"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button4_Click(object sender, EventArgs e)
{
    Session["carB"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button5_Click(object sender, EventArgs e)
{
    Session["carC"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button6_Click(object sender, EventArgs e)
{
    Session["carD"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button7_Click(object sender, EventArgs e)
{
    Session["carE"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button8_Click(object sender, EventArgs e)
{
    Session["carF"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button9_Click(object sender, EventArgs e)
{
    Session["carG"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
protected void Button10_Click(object sender, EventArgs e)
{
    Session["carH"] = Label1.Text;
    Response.Redirect("~/Welcome/BookingForm.aspx");
}
}

セッションを元に戻すには、"BookingForm.aspx" コード ビハインドでこのコードを使用しますstring car = Session["car"].ToString(); 。問題は、ユーザーがクリックするだけでセッションを元に戻すには、どのコードを記述すればよいかということです。ユーザーがクリックしたセッションのみを取得するには? 私の質問ではっきりしない場合は、私に尋ねることができます。どうもありがとう。

4

1 に答える 1

2

私があなたの質問を正しく理解していれば、迅速で汚い解決策は、キーを次のSessionように保存することです。

protected void Button9_Click(object sender, EventArgs e)
{
    Session["carG"] = Label1.Text;
    Session["buttonKey"] = "carG";
}

がロードされると、BookingForm.aspx次のコードを使用してセッションから値を取得できます。

private string GetSessionValue()
{
    var key = Sesssion["buttonKey"] as string;
    return Session[key] as string;
}
于 2012-07-31T06:49:58.000 に答える