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;