J'ai une application qui est déployée dans plusieurs pays. Il y aura un paramètre dans le fichier web.config, qui définit le pays. Le pays ne figurera pas dans l'URL.Modifier la règle de recherche pour les vues
Certaines des vues changent en fonction du pays. Ma première tentative est d'utiliser un dossier dans le dossier de vues qui contient des vues, si elles diffèrent de la vue par défaut:
Par défaut
/questions/ask.aspx
Espagne
/questions/ESP/ask.aspx
S'il n'y a pas de vue dans le dossier de pays, la vue par défaut est utilisé. Existe-t-il un moyen d'étendre ViewEngine pour rechercher des vues dans le dossier de pays en premier?
EDIT:
Ceci est un poc seulement. Pour voir une mise en œuvre complète jeter un oeil à
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;
}
Cela a fonctionné. Mais qu'entendez-vous par "Union"? –
C'est une méthode d'extension dans System.Linq –
où mettez-vous ce code? J'ai essayé ceci avec mes vues de rasoir et cela n'a pas fonctionné. Le code est-il différent pour MVC3 avec le moteur de vue Razor? (@Leon a demandé) – jjnguy