2014-03-31 106 views
0

我已經設置了控制器上的cookie:訪問的cookie從客戶端

HttpCookie loggedIn = new HttpCookie("LoggedIn", "true"); 
Request.Cookies.Add(loggedIn); 

我試圖訪問此文件上的準備?

$(document).ready(function() { 
    if ('@Request.Cookies["LoggedIn"]' != null) { 
     var loggedIn = '@Request.Cookies["LoggedIn"].Value'; 
     console.log("Logged In " + loggedIn); 
    } 

}); 

這不斷通過爲空?

任何想法?

回答

2

您實際上並未從客戶端JavaScript訪問cookie。即使您將cookie發送回瀏覽器,您的代碼也會忽略該cookie並嘗試通過Razor擴展訪問它。我想這可以工作,但它似乎是一個迂迴的方式來做到這一點。

您可以通過JavaScript訪問Cookie,但document.cookie屬性是一個;分隔的Cookie列表。

由於您使用jQuery,更簡單的方法是使用jquery.cookie插件。

var loggedIn = $.cookie('LoggedIn'); 

更新:我只是意識到你設置在請求中的cookie。你應該在響應中設置它:

Response.SetCookie(loggedIn); 
+0

我試過了,但它仍然顯示爲空,因爲我在部分視圖中加載會對它有什麼影響? – tau

+0

是的,你是對的。謝謝 – tau