我正在尝试从用户计算机读取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。
答案 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;
}