Ändern Lookup-Regel für Ansichten
-
11-07-2019 - |
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;
}
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.