这应该很简单,尽管我发现我只能设置 cookie 但不能读回它们,尽管我的浏览器向我显示了 cookie。
在我HomeController
的用户输入有效字符串后,我设置了 cookie:
[HttpPost]
public ActionResult Index(string fMemberCode)
{
try
{
// TODO: controller-->member table module-->member data gateway-->DB
// Check member num against member table
// Return cookie if exists
// Return error if not
MembersModule membersModule = new MembersModule();
int memberId = membersModule.AuthMember(fMemberCode);
if (memberId > 0)
{
HttpCookie mCookie = new HttpCookie("MMedia");
mCookie.Value = memberId.ToString();
Response.Cookies.Add(mCookie);
}
else { }
return RedirectToAction("Index");
}
catch
{
return View();
}
}
然后稍后,在不同的上下文中,LibraryController
存在检查 cookie 的需求:
public LibraryController()
{
// TODO
// Check member cookie present
int id = int.Parse(Request.Cookies["Media"].Value);
if (id > 0)
this.module = new LibraryModule(id);
else throw new Exception("Invalid cookie");
}
但是,当单步执行 VS2012 中的代码时,执行行LibraryController
到达:
int id = int.Parse(Request.Cookies["Media"].Value);
抛出异常:Object reference not set to an instance of an object