. Я использую новейшую версию пакета 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-адреса, он создает только английскую версию по умолчанию и не дает мне испанскую версию. Может ли кто-нибудь дать мне представление о том, почему это может быть так? Я не могу для жизни моей понять это.