设置会话变量

本文关键字:变量 会话 设置 | 更新日期: 2023-09-27 18:29:06

我有一个带有2个选项的RadioButtonList-海滩巴赫-Bush-bach

我想创建2个会话变量我做得对吗

Session["beachBach"] = bachRadioButtonList.SelectedValue = "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue = "Bush bach";

因此,如果用户按选择"beachBach",则会话["beachBach"]中将添加1布什巴赫也是如此

还是我需要创建2个单选按钮列表??

感谢

设置会话变量

我想你想要==而不是=:

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach";

否则,您将设置每个单选按钮的SelectedValue,然后将该字符串存储在会话变量中。如果使用==,则比较值并将truefalse存储在会话变量中。

如果真的想存储10(我不建议使用bool值,这样可以很好地工作,并使服务器端代码更干净),只需使用(condition) ? (true) : (false)三元运算符:

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach" ? 1 : 0;
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach" ? 1 : 0;

据我所知,您希望根据单选按钮列表的选定值设置会话变量。为此,你可以这样做:

// If bachRadioButtonList SelectedValue != "Beach bach",
// clear session variable, else set value to "Beach bach"
Session["beachBach"] = (bachRadioButtonList.SelectedValue != "Beach bach") ? null : "Beach bach";
// If bachRadioButtonList SelectedValue != "Bush bach",
// clear session variable, else set value to "Bush bach"
Session["bushBach"] = (bachRadioButtonList.SelectedValue != "Bush bach") ? null : "Bush bach";

您应该存储一个布尔值(truefalse),而不是存储值1(您的代码不会这样做)。

Session["beachBach"] = (bachRadioButtonList.SelectedValue == "Beach bach");
Session["bushBach"] = (bachRadioButtonList.SelectedValue == "Bush bach");

然而,您必须携带两个会话变量,这并不是很好。如果有一天你有50个单选按钮,你并不真的想要50个会话变量。相反,您可以创建一个枚举,并根据您想要的选择将其放入会话变量中:

public enum BachEnum 
{
    Beach,
    Bush
}
Session["bach"] = (bachRadioButtonList.SelectedValue == "Beach bach") ? BachEnum.Beach : BachEnum.Beach;

然后,您可以用新值扩展枚举,条件可以这样完成:

if ((BachEnum)Session["bach"] == BachEnum.Beach)
    // do stuff

您可以使用selectedIndexChange事件。

void SelectedIndex_Changed(Object sender, EventArgs e) 
{
   Session["SelValue"] = RadioButtonList1.SelectedItem.Value;
}

无论如何,我不知道你想要实现什么,但我确信你应该考虑不使用两个单独的会话变量。

如果值不互斥,则创建两个单选按钮列表。如果他们是,他们必须在同一个列表中,以确保每次只选择其中一个。