C# 设置会话变量

C# 设置会话变量,c#,session-variables,C#,Session Variables,我有一个RadioButton列表,有两个选项 -比奇巴赫 -布什·巴赫 我想创建两个会话变量 我做得对吗 Session["beachBach"] = bachRadioButtonList.SelectedValue = "Beach bach"; Session["bushBach"] = bachRadioButtonList.SelectedValue = "Bush bach"; 因此,如果用户按选择了“Beach bach”,1将添加到会话[“Beach bach”] 布什·巴赫

我有一个RadioButton列表,有两个选项 -比奇巴赫 -布什·巴赫

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

Session["beachBach"] = bachRadioButtonList.SelectedValue = "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue = "Bush bach";
因此,如果用户按选择了“Beach bach”,1将添加到会话[“Beach bach”] 布什·巴赫也是如此

或者我需要创建2个radiobuttonlist


谢谢

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

我认为您希望
=
而不是
=

Session["beachBach"] = bachRadioButtonList.SelectedValue == "Beach bach";
Session["bushBach"] = bachRadioButtonList.SelectedValue == "Bush bach";
否则,您将设置每个单选按钮的
SelectedValue
,然后将该字符串存储在会话变量中。如果使用
=
则比较值并将
true
false
存储在会话变量中

如果您真的想存储
1
0
(我不建议这样做-
bool
值应该可以正常工作,并且会使服务器端代码更干净),只需使用
(条件)?(真):(假)
三值运算符:

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

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

// 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";

您不应该存储值
1
(您的代码不会这样做),而应该存储布尔值(要么
true
要么
false

但是,您必须携带两个会话变量,这并不是很好。如果有一天你有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;
}

无论如何,我不知道你想要达到什么,但是我很确定你应该考虑不使用两个单会话变量。

嗨,你使用同一个Retro按钮来改变所选的值吗?当你运行会话上面指定的代码[ BeaBaCh ]变量时,字符串“海滩巴赫”,而不是1HI,你的意思是什么,嗨,谢谢你的帮助,但是当我将这些会话变量转移到我的其他页面时,如果我选择2个选项中的1个,它不会添加1个事件:(我如何向你发送我代码的一部分…,以便你能帮我:(。
void SelectedIndex_Changed(Object sender, EventArgs e) 
{

   Session["SelValue"] = RadioButtonList1.SelectedItem.Value;
}