在站点开始时定义默认文化

时间:2013-10-12 21:18:20

标签: asp.net-mvc

我正在使用AttributeRouting并遵循AttributeRouting.NET中的本地化示例并添加了一个文化处理程序:

routes.MapAttributeRoutes(config => {
  config.ConstrainTranslatedRoutesByCurrentUICulture = true;
  config.CurrentUICultureResolver = (httpContext, routeData) => {
    return (string)routeData.Values["culture"] ?? Thread.CurrentThread.CurrentUICulture.Name;
  };
  config.UseRouteHandler(() => new CultureRouteHandler());
});

我在CultureRouteHandler和解析器中添加了断点。

当我启动网站时,没有任何断点被触发......

所以我无法为第一个请求选择默认文化。

我的CultureRouteHandler如下:

protected override IHttpHandler GetHttpHandler(RequestContext context) {

  String culture = (String)context.RouteData.Values[_culture];

  if (culture == null) {
    culture = "en";
  }

  if (culture != null) {
    Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
    Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
    context.RouteData.Values[_culture] = culture;
  }

  return base.GetHttpHandler(context);

} // GetHttpHandler  

如何解决这个问题?

谢谢你, 米格尔

0 个答案:

没有答案