Frage

Ich habe eine Anwendung, die in mehreren Ländern ausgerollt wird. Es wird eine Einstellung in der web.config-Datei sein, die das Land definiert. Das Land wird nicht in der URL sein.

Einige der die Ansichten ändern sich je nach Land. Mein erster Versuch, einen Ordner innerhalb des Ansicht Ordner verwenden, die Ansichten enthält, wenn sie von der Standardansicht unterscheiden:

Standard

/questions/ask.aspx

Spanien

/questions/ESP/ask.aspx

Wenn es keine Aussicht auf dem Land-Ordner ist die Standardansicht verwendet wird. Gibt es eine Möglichkeit, die Viewengine Nachschlag Ansichten im Land Ordner zuerst zu erweitern?

EDIT:

Dies ist nur ein POC. Um zu sehen, eine vollständige Implementierung hat einen Blick auf

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; 
    }
War es hilfreich?

Lösung

public class MyViewEngine : WebFormViewEngine
{
    private static string[] LocalViewFormats = new[] { "~/Views/ESP/{0}.aspx",
                                                          "~/Views/ESP/{0}.ascx" };
    public MyViewEngine()
    {
        ViewLocationFormats = LocalViewFormats.Union(ViewLocationFormats).ToArray();
    }
}

Offensichtlich Sie nicht wollen, um den Ort zu codieren, aber das sollte Ihnen die allgemeine Idee geben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top