仅检索单击的会话

时间:2012-07-31 06:41:16

标签: c# asp.net session

我有按钮,每个按钮都有会话。用户需要单击其中一个按钮,然后在下一页中,用户可以查看他们单击的数据。这是我的代码背后:

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(); 现在的问题是,我应该编写什么代码,以便只返回用户点击会话?如何只检索用户点击的会话?如果你不清楚我的问题,你可以问我。非常感谢。

1 个答案:

答案 0 :(得分: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;
}