ASP.NET MVC Area使用-将Area设置成独立项目

环境说明:Vistual Studio 2013

MVC 4.0

其实关于ASP.NET MVC Area使用的基础知识可以参考 http://www.cnblogs.com/willick/p/3331519.html 这篇软文.

Global.asax 中的 Application_Start 方法里面有这样一句代码

AreaRegistration.RegisterAllAreas();

估计: 它的作用会到当前MVC 所在的bin中动态注入继承了 AreaRegistration的类, 这个类配置了分区的路由. 所以对于将"分区"独立在当前MVC项目"外"时,想办法将这个分区编译的dll保存到当前MVC应用对于的bin目录下.

ASP.NET MVC Area使用-将Area设置成独立项目_第1张图片

ASP.NET MVC Area使用-将Area设置成独立项目_第2张图片

特别说明: 1).HealthDemo.Web.Admin项目类型是类库,它的实际物理路径依旧在HealthDemo.Web目录下,具体看下面的截图

ASP.NET MVC Area使用-将Area设置成独立项目_第3张图片

手工改下HealthDemo.Web.Admin这个类库项目的 HealthDemo.Web.Admin.csproj  文件,让其编辑的dll保存在HealthDemo.Web\bin 目录里面
ASP.NET MVC Area使用-将Area设置成独立项目_第4张图片

后面基本就是程序该做事情

ASP.NET MVC Area使用-将Area设置成独立项目_第5张图片

果然可以生成对应的带分区的url,发现发出admin/controller/action形式的请求可以可以打到HealthDemo.Web.Admin.Controllers对应控制器,但是控制器并没有找到已经被独立在"外"的视图,这个视图文件实际的物理路径在HealthDemo.Web\administration\Views中的Home下, 所以我们要重新设置MVC引擎搜索模板的路径

ASP.NET MVC Area使用-将Area设置成独立项目_第6张图片

通过这个小实验,感受了下ASP.NET MVC 3 Area(分区)以及页面模板加载查找路径的设置.

 

你可能感兴趣的:(ASP.NET MVC Area使用-将Area设置成独立项目)