代码改变世界

NopCmmerce Area前后台分离

2015-12-28 15:49  xchit  阅读(370)  评论(0编辑  收藏  举报

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;