对于每个请求的页面,我需要检查一个cookie或创建它,如果它不存在。 如果cookie存在,我需要根据该cookie的内容从DB加载一些信息。asp.net mvc无法访问基础控制器中的cookie数据
为此,我创建了一个名为AppController的基础控制器,我的其他控制器继承自它。
然后我有这样的事(这样CurrentSessionValues对象是提供给我的所有控制器):
public MySession CurrentSessionValues;
public ApplicationController()
{
if (Request.Cookies["MySiteCookie"] == null)
{
// create new Record in DB
CurrentSessionValues = CreateMySession();
HttpCookie cookie = new HttpCookie("MySiteCookie");
cookie.Value = CurrentSessionValues.SessionID.ToString;
Response.SetCookie(cookie);
}
else
{
// use the value in MySiteCookie to get values from the DB
// e.g. logged in user id, cart id, etc
}
}
当我运行它,我得到这个错误Default.aspx中:
创建类型为 'Mvc_Learn.Controllers.HomeController'的 控制器时发生错误。
如果控制器没有 控制器工厂,请确保它具有 无参数公共构造函数。
它打破了上Request.Cookies时[“MySiteCookie”]
我应该在其他一些这样或那样的地方做这样的逻辑?
谢谢 - 使用这个我可以使用: requestContext.HttpContext.Request.Cookies [“MysiteCookie”] – Nils 2009-09-01 07:15:22