Я использую новейшую версию пакета AttributeRouting в Nuget для настройки моей маршрутизации для моего проекта ASP.Net MVC. Я создаю веб-сайт с двумя языками: английский (основной) и испанский (вторичный). URL-адреса для двух языков разные. Например, о нас для английского было бы так: www.root.com/en/about-us, тогда как испанская версия может быть такой: www.root.com/es/sobre-nosotros.Проблемы с маршрутизацией и локализацией атрибутов
У меня есть настройки маршрута Prefix, как показано ниже: [RoutePrefix («ан», TranslationKey = «Главная»)]
Тогда у меня есть программа, которую я создал, который считывает значения из файла XML в FluentTranslationProvider , Код зарегистрировать мои маршруты выглядит следующим образом:
var translations = new FluentTranslationProvider();
translations
.AddTranslations()
.FromFile();
routes.MapAttributeRoutes(
config =>
{
config.AddRoutesFromControllersOfType<BaseController>();
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-адреса, он только строит стандартную английскую версию и не даст мне испанскую версию. Может ли кто-нибудь дать мне понять, почему это может быть так? Я не могу для жизни моей фигурой это.
пожалуйста, добавьте ваш код для вызова urlhelper –
Кроме того, изображение вы ссылаетесь в вашем посте не существует – Henrik