NopCmmerce Area前后台分离
Nop 前后台是独立的应用程序;使用用Area技术分离;Nop.Admin项目放在Nop.Web项目的administration文件夹下面,通过编辑类库输入路径到Nop.Web的Bin目录下面;
分离前台和后台的方法有以下几种不同的实现方式:
- 编写AdminController,并修改Admin路由
- 使用MVC自带的Area机制
- 新建Admin工程,删除Global.asax和Web.config,并添加AdminAreaRegistration;然后将Views通过Post-Build Event拷贝到前台工程的Admin Area的View中
- 使用MvcContrib,将所有静态文件都作为嵌入资源写入Dll文件中,插件式开发
下面两篇文章对上述方法做了详细阐述,此处不做讨论。
在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;