基于MVC3.0的三层结构多项目分离框架的搭建

基于MVC3.0的三层结构多项目分离框架的搭建,

各个项目独立,可单独开发预览

发布简单,只需发布主项目即可

直接上图

主要结构

展开主项目可以看到,子项目会生成到主项目中来,所以只需发布主项目即可

接着看一下CustomPage

最后说下如何搭建

新建N个项目,其中一个作为主项目,其他附属项目的配置如下

1、删除附属项目下的Views Models Controllers三个文件夹

2、新建Areas 拷贝域注册.cs到附属项目的根目录并更名为GlobalAreaRegistration.cs

3、删除Content里所有的文件和文件夹 并在Content Scripts下建立对应域名称的文件夹

4、配置GlobalAreaRegistration.cs

namespace CustomPage {
    public class GlobalAreaRegistration : AreaRegistration {
        public override string AreaName {
            get {
                return "CustomPage";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context) {
            context.MapRoute(
                "CustomPage_default",
                "CustomPage/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                new[] { "CustomPage.Areas.CustomPage.Controllers" }
            );
        }
    }
}

自己比对哪些地方做了改动

5、配置Global.asax

namespace CustomPage {
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication {
        public static void RegisterGlobalFilters(GlobalFilterCollection filters) {
            filters.Add(new HandleErrorAttribute());
        }

        public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "CustomPage/{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
                new[] { "CustomPage" }
            );

        }

        protected void Application_Start() {
            GlobalAreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
        }
    }
}

7、配置生成事件 后期生成事件命令行添加
xcopy "$(ProjectDir)Areas" "$(SolutionDir)\MyMvcApplication\Areas\" /S /Y
xcopy "$(ProjectDir)Content" "$(SolutionDir)\MyMvcApplication\Content\" /S /Y
xcopy "$(ProjectDir)Scripts" "$(SolutionDir)\MyMvcApplication\Scripts\" /S /Y
xcopy "$(ProjectDir)bin" "$(SolutionDir)\MyMvcApplication\bin\" /S /Y

其他附属项目同上

至此配置完成

源码下载:自己另存后改拓展名即可

this is source code, download and rename MyMvcApplication.rar

原文地址:https://www.cnblogs.com/ahjesus/p/2746067.html