문제

여러 국가에서 출시되는 응용 프로그램이 있습니다. Web.config 파일에는 국가를 정의하는 설정이 있습니다. 국가는 URL에 있지 않을 것입니다.

전망 중 일부는 국가에 따라 변경됩니다. 첫 번째 시도는 기본보기와 다른 경우보기가 포함 된 views 폴더 내부의 폴더를 사용하는 것입니다.

기본

/questions/ask.aspx

스페인

/questions/esp/ask.aspx

국가 폴더에보기가없는 경우 기본보기가 사용됩니다. 컨트리 폴더에서 뷰 엔진을 조회보기로 확장하는 방법이 있습니까?

편집하다:

이것은 POC 전용입니다. 전체 구현을 보려면 살펴보십시오

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; 
    }
도움이 되었습니까?

해결책

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

분명히, 당신은 위치를 하드 코드하고 싶지 않지만 이것은 당신에게 일반적인 아이디어를 제공해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top