Я реализовал локализацию в своем приложении MVC3.
Я ищу решение для настройки текущей культуры перед выполнением атрибута ActionFilterAttribute.
Я хотел бы узнать текущую культуру из URL:
routes.MapRoute(
"Language",
"{culture}/{controller}/{action}/{id}",
new { culture = "en", controller = "Page", action = "Index", id = UrlParameter.Optional }
);
в базовом контроллере я могу сделать:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
var culture = filterContext.RouteData.Values["culture"] ?? ConfigurationSettings.AppSettings["DefaultCulture"];
var cultureInfo = CultureInfo.GetCultureInfo((string)culture);
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
base.OnActionExecuting(filterContext);
}
Я хотел бы обновить приложение и настроить текущую культуру в httpmodule
на данный момент мой код выглядит так:
public void Init(HttpApplication httpApplication)
{
httpApplication.BeginRequest += (sender, eventArgs) =>
{
var defaultCulture = ConfigurationSettings.AppSettings["DefaultCulture"];
CultureInfo cultureInfo = CultureInfo.GetCultureInfo(defaultCulture);
try
{
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}
catch { }
};
}
как настроить текущую культуру, используя filterContext.RouteData.Values ["culture"] в модуле http?
Спасибо заранее за любую помощь
Ori