我有一个在多个国家/地区推出的应用程序。 web.config文件中将有一个设置,用于定义国家/地区。 该国家/地区不在该网址中。
有些观点会因国家而异。 我的第一次尝试是在views文件夹中使用包含视图的文件夹,如果它们与默认视图不同:
默认
/questions/ask.aspx
西班牙
/questions/ESP/ask.aspx
如果country-folder中没有视图,则使用默认视图。有没有办法首先将ViewEngine扩展到country文件夹中的查找视图?
编辑:
这只是一个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;
}
答案 0 :(得分: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();
}
}
显然,你不想硬编码位置,但这应该给你一般的想法。