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

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

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

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

直接上图

主要结构

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

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

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

接着看一下CustomPage

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

最后说下如何搭建

新建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

其他附属项目同上

至此配置完成

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

 

 

 

 

 

 

你可能感兴趣的:(mvc)