C# 复选框:是否根据会话的值显示?

C# 复选框:是否根据会话的值显示?,c#,asp.net,visual-studio-2008,C#,Asp.net,Visual Studio 2008,我在不同的页面上有两个复选框。我使用如下会话从第一个复选框发送值: protected void Button4_Click(object sender, EventArgs e) { Session["VSSsnap"] = CheckBox1.Checked; Response.Redirect("~/Addnewpolicy4.aspx"); } 我在下一页收到了这样的会话: string vss = Ses

我在不同的页面上有两个复选框。我使用如下会话从第一个复选框发送值:

protected void Button4_Click(object sender, EventArgs e)
        {
            Session["VSSsnap"] = CheckBox1.Checked;
            Response.Redirect("~/Addnewpolicy4.aspx");
        }
我在下一页收到了这样的会话:

string vss = Session["VSSsnap"].ToString();
但是,我想把这个值放在第二页的复选框中

我尝试了这个,但我得到了一个错误:

CheckBox1.Checked = Session["VSSsnap"].ToString();
我也试过这个,;调试时,这些值也会出现(但不会通过复选框显示):

非常感谢您的帮助。

请使用以下代码:

if( Session["VSSsnap"] != null )
{
 CheckBox1.Checked = Convert.ToBoolean(Session["VSSsnap"]);
}
使用以下代码:

if( Session["VSSsnap"] != null )
{
 CheckBox1.Checked = Convert.ToBoolean(Session["VSSsnap"]);
}

复选框的
Checked
属性是
bool
,而不是
字符串

您正试图将
字符串
分配给
选中的
属性,这就是为什么会出现错误的原因

请尝试以下方法:

CheckBox1.Checked = (bool)(Session["VSSsnap"] ?? false);

复选框的
Checked
属性是
bool
,而不是
字符串

您正试图将
字符串
分配给
选中的
属性,这就是为什么会出现错误的原因

请尝试以下方法:

CheckBox1.Checked = (bool)(Session["VSSsnap"] ?? false);

您没有从会话中强制转换值。尝试:

CheckBox1.Checked =  (bool) (Session["VSSsnap"] ?? false);

这个??检查以确保如果VSSsnap因任何原因为null,将返回false。

您没有从会话中强制转换值。尝试:

CheckBox1.Checked =  (bool) (Session["VSSsnap"] ?? false);

这个??检查以确保VSSsnap是否因任何原因为null将返回false。

该代码可以工作,但我认为与我的代码相比,建议使用Michael或Luke的代码。该代码可以工作,但与我的代码相比,建议使用Michael或Luke的代码。