Używam najnowszej wersji pakietu AttributeRouting w Nuget do konfiguracji routingu dla mojego projektu ASP.Net MVC. Tworzę stronę internetową, która ma dwa języki: angielski (podstawowy) i hiszpański (wtórny). Adresy URL obu języków są różne. Na przykład informacje o nas w języku angielskim wyglądają tak: www.root.com/en/about-us, podczas gdy wersja hiszpańska może być następująca: www.root.com/es/sobre-nosotros.Problemy z atrybutem Routing i lokalizacja
Mam konfigurację trasy prefiks jak poniżej: [RoutePrefix („en”, TranslationKey = „Home”)]
Wtedy mam program, który stworzyłem, który odczytuje wartości z pliku XML do FluentTranslationProvider . Kod dla zarejestrować swoje trasy wygląda następująco:
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;
});
I wydaje się działać, bo mogę odwiedzić moją Routes.axd stronę i zobacz, co następuje: http://imm.io/nm7Z
Później w moją stronę, mój kod pokazuje że moja CurrentCulture jest ustawiona na es-AR, ale kiedy zadzwonię do klasy URLHelper w celu zbudowania adresu URL, buduje ona tylko domyślną angielską wersję i nie da mi wersji hiszpańskiej. Czy ktokolwiek może mi powiedzieć, dlaczego tak się dzieje? Nie mogę tego do końca życia.
proszę Cię dodać kod do wywoływania urlhelper –
Również obraz, który odwołuje się w post nie istnieje – Henrik