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; 
    }
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top