2010-12-23 21 views
0

我想從用戶計算機上讀取cookie,如果此cookie存在,那麼我將向他顯示panel1,如果不存在,panel2將可見。閱讀cookie以顯示面板

我想這項工作將在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問題,說

「錯誤'不能隱式地將類型 '字符串'轉換爲'bool'「

有什麼建議嗎?

使用c#,visiual studio 2010 express,web表單。

回答

1

首先Request.Cookies["test"]可能是空的(如果沒有cookie),所以你需要測試一下。

Request.Cookies["test"].Value返回一個字符串,而不是布爾值。 if語句只能對布爾表達式進行操作。

您可以使用string.IsNullOrWhiteSpace檢查的cookie的值 - 這將返回true,如果沒有價值,或者如果它僅包含空格,否則爲假:

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

我想這也是它返回一個錯誤說: 異常詳細信息:System.NullReferenceException:未將對象引用設置爲對象的實例。 ,感謝您的幫助,謝謝 – Bader 2010-12-23 12:38:27