Проблемы с маршрутизацией и локализацией атрибутов

. Я использую новейшую версию пакета AttributeRouting в Nuget для настройки маршрутизации для моего ASP.Net. Проект МВК. Я создаю веб-сайт на двух языках: английский (основной )и испанский (дополнительный ). URL-адреса для двух языков разные. Например, информация о нас для английского языка будет выглядеть так :www.root.com/en/about -us, тогда как версия для испанского языка может выглядеть так :www.root.com/es/sobre -нозотрос.

У меня настроен префикс маршрута, как показано ниже :[RoutePrefix ("en", TranslationKey = "Home" )]

Затем у меня есть программа, которую я создал, которая считывает значения из файла XML в FluentTranslationProvider. Код для регистрации моих маршрутов выглядит следующим образом:

var translations = new FluentTranslationProvider();
        translations
           .AddTranslations()
           .FromFile();

routes.MapAttributeRoutes(
            config =>
                {
                    config.AddRoutesFromControllersOfType();
                    config.AddTranslationProvider(translations);
                    config.CurrentUICultureResolver =
                        (httpContext, routeData) =>
                        (string) routeData.DataTokens["cultureName"] ??
                        Thread.CurrentThread.CurrentUICulture.Name;
                });

И, похоже, он работает, потому что я могу зайти на свою страницу Routes.axd и увидеть следующее:http://imm.io/nm7Z

Позже на моей странице мой код показывает, что для параметра CurrentCulture установлено значение es -AR, но когда я вызываю класс URLHelper для создания URL-адреса, он создает только английскую версию по умолчанию и не дает мне испанскую версию. Может ли кто-нибудь дать мне представление о том, почему это может быть так? Я не могу для жизни моей понять это.

12
задан Reaction21 27 April 2012 в 03:31
поделиться