在项目中可能根据不同的用户,不同的区域加载不同的界面风格,琢磨了一下终于搞定了。代码如下:
public static void OnloadTemplate(string tempName)
{
RazorViewEngine engine = ViewEngines.Engines.Where(e => e is RazorViewEngine).Single() as RazorViewEngine;
engine.ViewLocationFormats = engine.PartialViewLocationFormats = engine.MasterLocationFormats = new string[] {
"~/Views/" + tempName + "/{1}/{0}.cshtml",
"~/Views/" + tempName + "/{1}/{0}.vbhtml",
"~/Views/" + tempName + "/{1}/Shared/{0}.cshtml",
"~/Views/" + tempName + "/{1}/Shared/{0}.vbhtml",
"~/Views/" + tempName + "/Shared/{0}.cshtml",
"~/Views/" + tempName + "/Shared/{0}.vbhtml",
"~/Views/{1}/{0}.cshtml",
"~/Views/{1}/{0}.vbhtml",
"~/Views/Shared/{0}.cshtml",
"~/Views/Shared/{0}.vbhtml"
};
}
然后在Global.asax中调用此方法
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
OnloadTemplate("Templet.en.us");//可以在web.config文件中配置
}
目录结构如下: