Devo substituir padrões de seqüência de caracteres em asp.net mvc usando um personalizado viewengine?
-
23-09-2019 - |
Pergunta
Ter um ASP.NET MVC site que está localizada.A localização funcionalidade adiciona dois dígitos de IDENTIFICAÇÃO de idioma para o URL, exemplo:/es/Página.Se nenhum Id de idioma é encontrado na URL, o site muda para o navegador do usuário cultura.Tudo é bom.No entanto, o site hiperlinks, uma mistura de hard-coded href tags, actionlinks, etc., não incluem a base de IDENTIFICAÇÃO de idioma, de modo que quando clicar com o site a definir a cultura é perdido, e o site será revertido para o navegador do usuário cultura.
Meu (preguiçoso) o pensamento é substituir todas as href valores, que não aponte para um site externo, com os localizada URL (por exemplo,incluir a /es/).Caso contrário, todos os links de site precisa ser atualizada para incluir o código de cultura.
Isso é simplesmente estúpido?Ou, razoável, e deve ser feito através de um mecanismo de exibição personalizado, ou alguma outra abordagem?
Nenhuma solução correta
Outras dicas
A minha resposta é (atualmente):
O app tem um controlador de base, aí eu adicionei:
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 exemplo não mostra como o PathLanguageCode variável está definida, mas deve, pelo menos o suficiente para mostrar como isso pode ser manipulado de forma centralizada, sem a substituição de valores de seqüência de caracteres.
A única desvantagem dessa abordagem, que eu posso ver, é que o site realmente não é amigável para os motores de pesquisa, etc., desde que a gente acaba fazendo um monte de redirecionamentos.
Se você quiser você pode olhar para a minha abordagem que fizemos.Fala-se de colocar a cultura na URL.Espero que ajude!