我在下面的例子中有一个cookie问题。该cookie确实被创建,并且当我在创建它之后放置一个调试点时,我可以使用手表检查cookie中的内容。但是,当我重新启动网站时,cookie仍然存在,但已成为空的,并且不会创建模型(所有字段为空)。奇怪的MVC2饼干问题
我四处张望,发现与使用response.Cookie有关的错误没有失效日期,但我改变了事情,并保持空白。我做错了什么或者是因为我使用本地主机?
[HttpGet]
[Autorize]
public ActionResult ManagePaymentRun()
{
ViewData["currentAction"] = "Index";
payments.AccountNo = Request.Cookies["FSCSPayments"]["AccountNo"];
payments.SortCode = Request.Cookies["FSCSPayments"]["SortCode"];
payments.FirstChequeNo = "2";// Request.Cookies["FSCSPayments"]["FirstChequeNo"];
payments.FileName = Request.Cookies["FSCSPayments"]["FileName"];
payments.FRN = Request.Cookies["FSCSPayments"]["FRN"];
payments.JobNumber = Request.Cookies["FSCSPayments"]["JobNumber"];
payments.StartRecNo = Request.Cookies["FSCSPayments"]["StartRecNo"];
return View(payments);
}
internal void CreateCookie()
{
HttpCookie cookie = new HttpCookie("FSCSPayments");
cookie.Values.Add("AccountNo", payments.AccountNo);
cookie.Values.Add("SortCode", payments.SortCode);
cookie.Values.Add("FirstChequeNo", payments.FirstChequeNo);
cookie.Values.Add("FileName", payments.FileName);
cookie.Values.Add("FRN", payments.FRN);
cookie.Values.Add("JobNumber", payments.JobNumber);
cookie.Values.Add("StartRecNo", payments.StartRecNo);
cookie.Expires = DateTime.Now.AddDays(14);
cookie.Path = "/";
Request.Cookies.Add(cookie);
}
如果cookie未来的到期日期未设置,那么它是一个会话级别的cookie,当浏览器关闭或会话超时(取决于特定浏览器)时通常会被销毁。 你的代码在哪里调用'CreateCookie()'?当你说你重新启动网站并且cookie在那里,你是什么意思?你可以在浏览器的Cookie缓存中找到它?如果cookie被持久化,则它独立于服务器的停止和启动。 – 2010-11-19 16:00:09
如果我搜索cookie缓存,它就在那里。我添加了一个添加日期到我的cookie,所以它不应该是会话cookie正确吗?并在ManagePaymentRun HttpPost操作中调用createcookie,并且在创建cookie时设置了一个调试点,并且它通过那里。 – Andy 2010-11-19 16:06:29