设置会话变量
本文关键字:变量 会话 设置 | 更新日期: 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
,然后将该字符串存储在会话变量中。如果使用==
,则比较值并将true
或false
存储在会话变量中。
如果真的想存储1
或0
(我不建议使用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";
您应该存储一个布尔值(true
或false
),而不是存储值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;
}
无论如何,我不知道你想要实现什么,但我确信你应该考虑不使用两个单独的会话变量。
如果值不互斥,则创建两个单选按钮列表。如果他们是,他们必须在同一个列表中,以确保每次只选择其中一个。