新建了一个 Separate 解决方案, 如下图
Separate.UI UI层。 引用 Separate.Home
Separate.Home 把Home控制器分享到 一个类库中 并引用(System.Web/System.Web.Mvc 程序集)
UI层 添加 区域 Home,然后就可以删除 其区域 Home 的Controllers 目录了。
复制 区域注册文件 到 HomeAreaRegistration.cs并修改其命名空间,并删除UI层的 区域注册文件。
这里的是
using System.Web.Mvc;namespace Separate.Home{ public class HomeAreaRegistration : AreaRegistration { public override string AreaName { get { return "Home"; } } public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Home_default", "Home/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); } }}
视图放在 UI层的 Areas/区域名/Views/控制器名 下面。
然后访问
Separate.Home 创建 AdminController.cs
using System.Web.Mvc;namespace Separate.Home{ public class AdminController : Controller { public ActionResult About() { return View(); } }}
在UI层 Separate.UI /Areas/Home/ Views/ Admin(此文件夹要手动创建) 下添加 视图
@{ ViewBag.Title = "About";}我是Admin下的About
然后访问
PS:
Areas/View/Controller 视图只要放web.config 其视图,就可以被解析
Areas 内的模板 不继承于 主模板