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

环境: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目录就可以共享了。

 

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

如何在MultiArea项目中共享View路径(环境:asp.net mvc3 vs2010)_第1张图片如何在MultiArea项目中共享View路径(环境:asp.net mvc3 vs2010)_第2张图片

 

你可能感兴趣的:(mvc,String,敏捷开发,Class,asp.net,2010)