在项目中可能根据不同的用户,不同的区域加载不同的界面风格,琢磨了一下终于搞定了。代码如下:

 

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文件中配置
        }

 

目录结构如下:

posted on 2013-03-22 14:41  Haydy  阅读(368)  评论(0编辑  收藏  举报