我在下面的例子中有一個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