Alterar pesquisa regra para vistas
-
11-07-2019 - |
Pergunta
Eu tenho um aplicativo que se desenrolou em vários países. Haverá uma configuração no arquivo web.config, que define o país. O país não estará na URL.
Alguns da mudança que os pontos de vista, dependendo do país. Minha primeira tentativa é usar uma pasta dentro das vistas pasta que contém pontos de vista, se eles diferem da visualização padrão:
Padrão
/questions/ask.aspx
Espanha
/questions/ESP/ask.aspx
Se não houver vista no país-pasta modo de exibição padrão é usado. Existe uma maneira de estender a ViewEngine para procurar pontos de vista na pasta país em primeiro lugar?
EDIT:
Este é apenas um poc. Para ver uma implementação completa têm uma olhada
http://pietschsoft.com/?tag=/mvc
private static string[] LocalViewFormats =
new string[] {
"~/Views/{1}/ESP/{0}.aspx",
"~/Views/{1}/{0}.aspx",
"~/Views/{1}/{0}.ascx",
"~/Views/Shared/{0}.aspx",
"~/Views/Shared/{0}.ascx"
};
public LocalizationWebFormViewEngine()
{
ViewLocationFormats = LocalViewFormats;
}
Solução
public class MyViewEngine : WebFormViewEngine
{
private static string[] LocalViewFormats = new[] { "~/Views/ESP/{0}.aspx",
"~/Views/ESP/{0}.ascx" };
public MyViewEngine()
{
ViewLocationFormats = LocalViewFormats.Union(ViewLocationFormats).ToArray();
}
}
Obviamente, você não quer codificar a localização, mas isso deve dar-lhe a idéia geral.