基于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
其他附属项目同上
至此配置完成
源码下载:自己另存后改拓展名即可