NopCmmerce Area前后台分离

时间:2024-01-18 14:06:17

Nop 前后台是独立的应用程序;使用用Area技术分离;Nop.Admin项目放在Nop.Web项目的administration文件夹下面,通过编辑类库输入路径到Nop.Web的Bin目录下面;

分离前台和后台的方法有以下几种不同的实现方式:

  1. 编写AdminController,并修改Admin路由
  2. 使用MVC自带的Area机制
  3. 新建Admin工程,删除Global.asax和Web.config,并添加AdminAreaRegistration;然后将Views通过Post-Build Event拷贝到前台工程的Admin Area的View中
  4. 使用MvcContrib,将所有静态文件都作为嵌入资源写入Dll文件中,插件式开发

下面两篇文章对上述方法做了详细阐述,此处不做讨论。

使用Areas分离ASP.NET MVC项目

使用MvcContrib分离ASP.NET MVC项目

在Nop.Admin项目条件类文件

 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 { controller = "Home", action = "Index", area = "Admin", id = "" },
new[] { "XC.Project.Admin.Controllers" }
);
}
}

通过运行Nop.Web项目就可以路由到admin项目了;唯一缺点就是每次修改后台的都需要编辑生成;哪怕是修改的js和css;