如何在MVC 5应用程序启动时读取cookie值
本文关键字:读取 cookie 启动 应用程序 MVC | 更新日期: 2023-09-27 18:05:14
我有一个具有本地化支持的MVC5应用程序。我已经使用路由来存储当前语言值。
routes.MapRoute(
name: "Default",
url: "{lang}/{controller}/{action}/{id}",
defaults: new { lang = "en", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
另一方面,我将当前区域性值存储在cookie中以供以后使用。每当用户想要开始浏览我的应用程序并根据cookie值设置他的语言时,我想从cookie中读取文化值。在此阶段之后,我将在路由值中存储语言参数。
如何在应用程序启动时从cookie中读取和设置语言?
我不确定你是否能够在应用程序启动时读取cookie,因为它仍然没有加载HttpContext
。
一旦你设置了HttpContext
,你就可以从它读取cookie
当控制器工厂被调用时,它加载RequestContext
,然后它附加到HttpContext
,你可以注入你自己的控制器工厂以便在上下文中挂钩,在控制器实例化之前,但我不确定它是否值得。
我的建议是覆盖OnActionExecuting()
方法在你的基本控制器,所以你会检查那里的cookie。您可以通过在方法中访问this.Request.Cookies
来访问它们,或者如果它仍然没有填充,您可以从传递的ActionExecutingContext
对象中访问RequestContext
。