Estoy usando la versión más reciente del paquete AttributeRouting en Nuget para configurar mi enrutamiento para mi proyecto ASP.Net MVC. Estoy creando un sitio web que tiene dos idiomas, inglés (primario) y español (secundario). Las direcciones URL para los dos idiomas son diferentes. Por ejemplo, el sobre nosotros para inglés sería así: www.root.com/en/about-us mientras que la versión en español podría ser esta: www.root.com/es/sobre-nosotros.Problemas con el enrutamiento y la localización de atributos
Tengo una configuración de ruta Prefijo de la siguiente manera: [RoutePrefix ("es", TranslationKey = "Inicio")]
Entonces tengo un programa que creé que lee los valores de un archivo XML en el FluentTranslationProvider . El código para registrar mis rutas se ve así:
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;
});
Y parece estar funcionando porque puedo visitar mi página Routes.axd y ver lo siguiente: http://imm.io/nm7Z
Más adelante en mi página, mis programas de código que mi CurrentCulture está configurado en es-AR, pero cuando llamo a la clase URLHelper para construir una url, solo crea la versión predeterminada en inglés y no me da la versión en español. ¿Alguien puede darme una idea de por qué este podría ser el caso? No puedo por la vida de mi entender esto.
favor añadir que el código para llamar UrlHelper –
Además, la imagen que vincular en su puesto que no existe – Henrik