如何在MultiArea项目中共享View路径(环境:asp.net mvc3 vs2010)

来源:互联网 发布:局域网语音通讯软件 编辑:程序博客网 时间:2024/05/22 20:29

环境:asp.net mvc3 vs2010

当使用多Area工作时,为了能在Area之间共享Shared目录,需要注册各自Shared地址。

在Global.asax.cs,需要如下添加不同Area的Engine:

    public class MvcApplication : System.Web.HttpApplication    {    ...        protected void Application_Start()        {            RegisterRoutes(RouteTable.Routes);            ViewEngines.Engines.Add(new AgileViewEngine());            ViewEngines.Engines.Add(new MySpaceViewEngine());            ViewEngines.Engines.Add(new SFCViewEngine());        }    }    public class AgileViewEngine : RazorViewEngine    {        private static string[] NewPartialViewFormats = new[] {            "~/Areas/Agile/Views/Shared/{0}.cshtml",        };        public AgileViewEngine()        {            base.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();        }    }    public class MySpaceViewEngine : RazorViewEngine    {        private static string[] NewPartialViewFormats = new[] {            "~/Areas/MySpace/Views/Shared/{0}.cshtml"        };        public MySpaceViewEngine()        {            base.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();        }    }    public class SFCViewEngine : RazorViewEngine    {        private static string[] NewPartialViewFormats = new[] {            "~/Areas/SFC/Views/Shared/{0}.cshtml"        };        public SFCViewEngine()        {            base.PartialViewLocationFormats = base.PartialViewLocationFormats.Union(NewPartialViewFormats).ToArray();        }    }

这样,这三个Area的Views/Shared目录就可以共享了。

 

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》