Pregunta

Tener un sitio ASP.NET MVC que se localiza. La funcionalidad de localización añade el identificador de idioma de dos dígitos a la URL, por ejemplo, / Es / Página. Si no se encuentra ningún identificador de idioma en la URL, el sitio cambia a la cultura del navegador del usuario. bueno de todos. Sin embargo, los hipervínculos del sitio, una mezcla de etiquetas href no modificables, actionlinks, etc., no incluyen el identificador de idioma de base, por lo que al hacer clic a través del sitio de la cultura conjunto se pierde, y los revierte sitio a la cultura del navegador del usuario .

Mi (perezoso) pensamiento es reemplazar todos los valores href, que no apuntan a un sitio externo, con la URL localizada (por ejemplo, incluyen el / en /). De lo contrario, tendrá que ser actualizado todos los enlaces del sitio para incluir el código de la cultura.

Es esto simplemente tonto? O bien, razonable, y se debe hacer uso de un motor de vista personalizada, o algún otro enfoque?

No hay solución correcta

Otros consejos

Mi respuesta es (actualmente):

La aplicación tiene un controlador de base, no he añadido:

if (PathLanguageCode == "" && requestContext.HttpContext.Session["LanguageCode"] != null && requestContext.HttpContext.Request.RequestType == "GET")
{
    requestContext.HttpContext.Response.Redirect("/" + requestContext.HttpContext.Session["LanguageCode"] + requestContext.HttpContext.Request.RawUrl);
}

Este ejemplo no muestra cómo se define la variable PathLanguageCode, pero debería al menos suficientes para mostrar cómo esto puede ser manejado centralmente, sin tener que reemplazar los valores de cadena.

La única desventaja de este enfoque, que puedo ver, es que el sitio realmente no es amigable para los motores de búsqueda, etc., ya que terminamos haciendo una gran cantidad de redirecciones.

Si desea se puede ver en mi enfoque que tomamos. Se habla de poner la cultura en la URL. Espero que ayude!

cultivadas Ver Motor para MVC

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top