新建了一个 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";
} <h2>我是Admin下的About</h2>
然后访问
PS:
Areas/View/Controller 视图只要放web.config 其视图,就可以被解析
Areas 内的模板 不继承于 主模板