Изменить правило поиска для представлений - PullRequest
1 голос
/ 12 марта 2009

У меня есть приложение, которое распространяется в нескольких странах. В файле web.config будет параметр, определяющий страну. Страна не будет в URL.

Некоторые виды меняются в зависимости от страны. Моя первая попытка - использовать папку внутри папки представлений, которая содержит представления, если они отличаются от представления по умолчанию:

По умолчанию

/ вопросы / ask.aspx

Испания

/ вопросы / ESP / ask.aspx

Если в папке страны нет вида, используется вид по умолчанию. Есть ли способ расширить ViewEngine для поиска представлений в папке страны в первую очередь?

EDIT:

Это только документ. Чтобы увидеть полную реализацию взгляните на

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; 
    }

1 Ответ

2 голосов
/ 12 марта 2009
public class MyViewEngine : WebFormViewEngine
{
    private static string[] LocalViewFormats = new[] { "~/Views/ESP/{0}.aspx",
                                                          "~/Views/ESP/{0}.ascx" };
    public MyViewEngine()
    {
        ViewLocationFormats = LocalViewFormats.Union(ViewLocationFormats).ToArray();
    }
}

Очевидно, вы не хотите жестко задавать местоположение, но это должно дать вам общее представление.

...