2014-03-31 79 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