1

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

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

デフォルト

/質問/ask.aspx

スペイン

/questions/ESP/ask.aspx

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

編集:

これはポックのみです。完全な実装を確認するには、以下をご覧ください。

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

1 に答える 1

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

明らかに、場所をハードコードしたくはありませんが、これで一般的なアイデアが得られるはずです。

于 2009-03-12T17:23:55.530 に答える