我想保存一些关于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但它不起作用。你能帮助我吗?
答案 0 :(得分:0)
Response.Cookies
和Request.Cookies
是两个不同的Cookie集合。 Request.Cookies
是浏览器发送给您的应用程序的内容。 Response.Cookies
是您要在浏览器中添加或更新的Cookie。
在您的控制器操作中,您正在更新Response.Cookies
集合,但在视图中,您尝试从Request.Cookies
集合中读取Cookie。
但是,我永远不会直接访问视图中的cookie。我会将值添加到我传递给视图的模型中,并从那里获取数据。我会说视图应该使用的唯一数据源是模型(可能在ViewBag
中,但我试着避免这种情况)