设置会话变量

时间:2013-08-26 13:49:42

标签: c# session-variables

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

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

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

所以如果用户按下选择“Beach bach”,1将被添加到Session [“beachBach”] 同样适用于布什巴赫

或者我需要创建2个radiobuttonlist ??

谢谢

5 个答案:

答案 0 :(得分:1)

我认为您需要==而不是=

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;

答案 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";

答案 2 :(得分:0)

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

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

但是,你必须携带两个会话变量,这并不是很好。如果有一天你有50个radiobuttons,你真的不想要50个会话变量。相反,您可以创建一个枚举并根据需要选择会话变量:

public enum BachEnum 
{
    Beach,
    Bush
}

Session["bach"] = (bachRadioButtonList.SelectedValue == "Beach bach") ? BachEnum.Beach : BachEnum.Beach;

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

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

答案 3 :(得分:0)

您应该使用selectedIndexChange事件。

void SelectedIndex_Changed(Object sender, EventArgs e) 
{

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

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

答案 4 :(得分:-1)

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