ASP.NET MVC 修改视图的默认路径(MVC2,MVC3)
ASP.NET MVC2 修改视图的默认路径
步骤:1、编写继承自WebFormViewEngine的类,重写视图路径
2、在Application_Start()中添加语句:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MvcViewEngine());
1 protected void Application_Start() 2 { 3 AreaRegistration.RegisterAllAreas(); 4 ViewEngines.Engines.Clear(); 5 ViewEngines.Engines.Add(new MvcViewEngine()); 6 RegisterRoutes(RouteTable.Routes); 7 } 8 9 public class MvcViewEngine : WebFormViewEngine 10 { 11 public MvcViewEngine() 12 { 13 base.MasterLocationFormats = new string[] { "~/Views/{1}/{0}.master", "~/Views/Shared/{0}.master" }; 14 base.ViewLocationFormats = new string[] { 15 "~/Views/Books/{1}/{0}.aspx", 16 "~/Views/Books/{1}/{0}.ascx", 17 "~/Views/Shared/{0}.ascx", 18 "~/Views/{1}/{0}.aspx"}; 19 base.PartialViewLocationFormats = base.ViewLocationFormats; 20 } 21 }
ASP.NET MVC3 修改视图的默认路径
步骤:1、编写继承自RazorViewEngine的类,重写视图路径
2、在Application_Start()中添加语句:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MvcViewEngine());
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new MvcViewEngine()); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); } public class MvcViewEngine : RazorViewEngine { public MvcViewEngine() { MasterLocationFormats = new[] {"~/Views/Shared/{0}.cshtml"}; ViewLocationFormats = new[] { "~/Views/Admin/{1}/{0}.cshtml", "~/Views/{1}/{0}.cshtml", "~/Views/Shared/{0}.cshtml" }; PartialViewLocationFormats = ViewLocationFormats; } }
大家注意一下这两版本的区别,MVC2自定义的类继承自 WebFormViewEngine,MVC3自定义的类继承自RazorViewEngine;
视图文件的后缀也是不同的,希望大家多多注意。