阅读cookie以显示面板

时间:2010-12-23 12:28:26

标签: c# visual-studio-2010

我正在尝试从用户计算机读取cookie,如果此cookie存在,那么我将向他显示panel1,如果没有,panel2将可见。

我想这项工作将在page_load代码块中完成,所以这是我的代码

 protected void Page_Load(object sender, EventArgs e)
{


    if (Request.Cookies["test"].Value)
    {
        Panel1.Visible = false;
        Panel2.Visible = true;
    }

}

问题是它突出显示Request.Cookies["test"].Value作为一个erorr,说

  

“错误>无法隐式转换类型   'string'到'bool'“

有什么建议吗?

使用c#,visiual studio 2010 express,web forms。

1 个答案:

答案 0 :(得分:1)

首先Request.Cookies["test"]可能为空(如果没有cookie),所以你需要测试它。

Request.Cookies["test"].Value返回一个字符串,而不是布尔值。 if语句只能对布尔表达式进行操作。

您可以使用string.IsNullOrWhiteSpace来检查Cookie的值 - 如果没有值,或者只包含空格,则返回true,否则返回false:

if (Request.Cookies["test"] != null && !string.IsNullOrWhiteSpace(Request.Cookies["test"].Value))
{
    Panel1.Visible = false;
    Panel2.Visible = true;
}