我在控制器上设置了一个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);
}
});
这是否一直存在?
有什么想法吗?
答案 0 :(得分:2)
您实际上并未从客户端JavaScript访问Cookie。即使您将cookie发送回浏览器,您的代码也会忽略该cookie并尝试通过Razor扩展来访问它。我想这可行,但这似乎是一种迂回的方式。
您可以通过document.cookie
属性从JavaScript访问Cookie,这是一个;
分隔的Cookie列表。
由于您使用的是jQuery,更简单的方法是使用jquery.cookie插件。
var loggedIn = $.cookie('LoggedIn');
更新:我刚刚意识到你在请求中设置了cookie。您应该在响应中设置它:
Response.SetCookie(loggedIn);