質問

複数の国で展開されるアプリケーションがあります。 web.configファイルには、国を定義する設定があります。 国はURLに含まれません。

ビューは、国によって異なります。 私の最初の試みは、ビューがデフォルトビューと異なる場合、ビューを含むビューフォルダ内のフォルダを使用することです。

デフォルト

/questions/ask.aspx

スペイン

/questions/ESP/ask.aspx

country-folderにビューがない場合、デフォルトのビューが使用されます。最初に国フォルダのビューを検索するようにViewEngineを拡張する方法はありますか?

編集:

これは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