很多人在开发一个新的项目时,需要先决定项目的整体架构,是决定使用MVC的同时也不例外,具体包含:项目的多语言性,项目的多风格选择,项目的可扩展性

其中项目的多语言性:http://www.cnblogs.com/coolcode/archive/2009/07/08/1519029.html,这是我所看到的比较好的解决方法

这里着重说一下MVC的Areas作用,相信几个基本的项目,都需要分为好几个模块,比如,仓库进销存管理,财务管理,人事管理,如果能够将这些模块,都分为不同的项目进行管理,需要的时候,整合起来,那也算比较完美的,为此MVC提供了Areas(区域)的概念达到这一目的。

具体操作是我参考的博客园里面的某个大神的文章,可惜的是,我找不到原地址了,这里只能大体的解释一下

比如我们现在要创建一个MVCSHOP的项目,其中分为前台购物+后台管理两个模块,

1 首先新建一个MVCSHOP的空白项目,在项目上右键->添加->Areas,输入"Admin"

2 在Areas/Admin/Controllers文件夹下面新建HomeController并添加一个Index的方法和对应的View文件。这里可 以发现Areas的另一个好处:你可以在不同Areas下面添加相同名称的Controller

3 在解决方案上面新建一个MVCSHOP.Admin的MVC3项目,并且删除Global.asax和Web.config两个文件

4 在MVCSHOP.Admin的根目录新建一个AdminAreaRegistration的类,输入如下内容:

public class AdminAreaRegistration : AreaRegistration { public override string AreaName { get { return "Admin"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } }

   5 删除MVCSHOP项目/Areas/Admin文件夹下面的AdminAreaRegistration.cs文件以及Controllers文件夹(包括HomeController)

6 在MVCSHOP.Admin项目的Controllers里面新建一个HomeController

    记得保留MVCSHOP/Areas/Admin下面的Views,并且在MVCSHOP项目里面引用MVCSHOP.Admin项目

7 现在运行程序并访问/Admin/Home/Index可以发现Admin项目生效了。这样,我们可以将所有的与后台管理相关的Controller都放到这个新的项目中来

8 为了使我们在MVCSHOP.Admin自动生成的View自动同步到MVCSHOP/Areas/Admin /Views文件夹中,可以使用“生成事件(Build Event)”里的“Post-Build Event”,打开MVCSHOP.Admin的属性,修改如下所示:

mkdir "$(SolutionDir)$(SolutionName)\Areas\Admin\Views" xcopy "$(ProjectDir)Views" "$(SolutionDir)$(SolutionName)\Areas\Admin\Views" /S /E /C /Y

  意思就是,相信大家都能看得懂,就是完全复制MVCSHOP.Admin的Views文件夹下所有文件至MVCSHOP/Areas/Admin/Views中。

  现在再次访问/Admin/Home/List就可以得到正确结果了,并且你可以发现List.cshtml已经被复制到MVCSHOP/Areas/Admin/Views/Home目录里。

最新文章

  1. d3 中exit() remove()正确工作的方式
  2. NOI 题库 9272 题解
  3. Jenkins中构建Testcomplete项目的方法介绍
  4. myaudio.duration为null的解决办法
  5. 程序员DNS知识指南
  6. Windows 10 开始菜单修改程序
  7. TTL电平、CMOS电平、RS232电平的区别
  8. Cassandra命令行CLI的基本使用
  9. [FML]学习笔记一Cross-validation交叉验证
  10. 缓存一致性和跨服务器查询的数据异构解决方案canal
  11. java中重载一定在一个类里面吗?
  12. BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】
  13. 设置 Visual Studio IIS Express 站点局域网访问
  14. [原创]浅谈移动互联网App兼容性测试
  15. 端口转发工具rinetd的安装与配置
  16. 关于collectionview布局的坑
  17. .net图表之ECharts随笔07-自定义系列(多边形)
  18. 非常有助于理解二极管PN结原理的资料
  19. 在Word 2007中添加参考文献及其引用的方法
  20. mysql按日/周/月统计

热门文章

  1. 2017.2.12 开涛shiro教程-第七章-与Web集成
  2. node在Fedora 22系统下开发环境搭建
  3. CentOS下配置iptables防火墙 linux NAT(iptables)配置
  4. 红米note3刷安卓原生
  5. 微信开源组件WCDB漫谈及Demo
  6. SQL Server -使用表触发器记录表插入,更新,删除行数
  7. 17:不重复整数提取NoRepeatNum
  8. 深入Asyncio(三)Asyncio初体验
  9. CentOS7时间设置及ntp同步配置(转)
  10. 【PHP开发】ThinkPHP3.1.3问题集及解决方法