質問
複数の国で展開されるアプリケーションがあります。 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();
}
}
明らかに、場所をハードコーディングしたくないのですが、これは一般的な考え方を与えるはずです。
所属していません StackOverflow