从视图访问时,Cookie值返回null

时间:2016-06-28 15:43:25

标签: asp.net-mvc cookies

我想保存一些关于cookie的数据。我在控制器中有这个。

Question[] qns = new.Question[0]; 
for(int i=0;i<qns.Length;i++)
{
HttpCookie c1 = new.HttpCookie("QuestionID" + i, qns[i].QuestionID.ToString ());
c1.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(c1);
}

这在我看来

@Html.Label(Request.Cookies["QuestionID0"].Value, htmlAttributes: new { @class = "control-label col-md-2" })

我在视图中得到一个Null引用异常。我也尝试过Response.Cookies但它不起作用。你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

Response.CookiesRequest.Cookies是两个不同的Cookie集合。 Request.Cookies是浏览器发送给您的应用程序的内容。 Response.Cookies是您要在浏览器中添加或更新的Cookie。

在您的控制器操作中,您正在更新Response.Cookies集合,但在视图中,您尝试从Request.Cookies集合中读取Cookie。

但是,我永远不会直接访问视图中的cookie。我会将值添加到我传递给视图的模型中,并从那里获取数据。我会说视图应该使用的唯一数据源是模型(可能在ViewBag中,但我试着避免这种情况)