1、新建一个项目TestAdmin项目类型随便选一个,待会删掉,因为这里我只需要解决方案名称  【项目存放于F盘    F:\TestAdmin

2、新建一个 ZGJ.Web 的前台MVC项目,将开始的那个随便选的项目删掉  【ZGJ.Web地址  F:\TestAdmin\ZGJ.Web

3、新建一个ZGJAdmin 的后台MVC项目,放在 ZGJ.Web 里面 【ZGJAdmin地址 F:\TestAdmin\ZGJ.Web\ZGJAdmin

4、为了美观  将项目 ZGJAdmin  重命名为 ZGJ.Admin 并且在其属性中将程序集名称及默认命名空间名称一起改成 ZGJ.Admin

注意:不要删除 ZGJ.Admin 下的 web.config ,否则添加Controller是会出错   运行所选代码生成器时出错 参数错误 HRESULT: 0x80070057 (E_INVALIDARG)

5、在 ZGJ.Web 下新建一个视图引擎  CustomerRazorViewEngine  继承自 RazorViewEngine

   public class CustomerRazorViewEngine : RazorViewEngine
{
public CustomerRazorViewEngine()
{
AreaViewLocationFormats = new[]
{
//default
"~/ZGJAdmin/Views/{1}/{0}.cshtml",
"~/ZGJAdmin/Views/Shared/{0}.cshtml"
};
AreaMasterLocationFormats = new[]
{
//default
"~/ZGJAdmin/Views/{1}/{0}.cshtml",
"~/ZGJAdmin/Views/Shared/{0}.cshtml"
};
ViewLocationFormats = new[]
{
//default
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml"
};
MasterLocationFormats = new[]
{
//default
"~/Views/{1}/{0}.cshtml",
"~/Views/Shared/{0}.cshtml"
};
AreaPartialViewLocationFormats = AreaViewLocationFormats;
PartialViewLocationFormats = ViewLocationFormats;
}
}

6、在 ZGJ.Web 的 Global.asax 中使网站启动时加载视图引擎

    public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new CustomerRazorViewEngine());
}
}

7、修改  ZGJ.Web  中的 RouteConfig  给默认路由加上命名空间

        public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "ZGJ.Web.Controllers" }
);
}

8、注册区域 在 ZGJ.Admin 中添加类 AdminAreaRegistration  继承自 AreaRegistration

    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[] { "ZGJ.Admin.Controllers" }
);
}
}

9、在 ZGJ.Admin 的 View 目录下 添加 _ViewStart.cshtml 布局文件

@{
Layout = "~/ZGJAdmin/Views/Shared/_Layout.cshtml";
}

10、在 ZGJ.Admin 的 View 目录下添加 Shared 目录 并添加_Layout.cshtml 布局文件

11、在 ZGJ.Admin 的属性中修改项目的输出目录

 发布

1、在ZGJ.Web 中 打包/发布Web 配置 Release 并选中此项目文件夹中的所有文件

2、编辑解决方案文件  ZGJ.Web..csproj 在最后面添加

  <Target Name="ExcludeRootBinariesDeployment">
<ItemGroup>
<RootBinFiles Include="bin\*">
<InProject>false</InProject>
</RootBinFiles>
</ItemGroup>
<PropertyGroup>
<ExcludeFilesFromDeployment>
**\*.Debug.config;
**\*.Release.config;
**\obj\**;
**\bin\*.xml;
**\*.cs;
**\packages.config;
**\*.csproj;
**\*.csproj.user;
ZGJAdmin\bin\**;
ZGJAdmin\db_backups\*.bak;
Properties\**\*;
</ExcludeFilesFromDeployment>
</PropertyGroup>
</Target>
<Target Name="ExcludeRootBinariesPackage" DependsOnTargets="ExcludeRootBinariesDeployment" BeforeTargets="ExcludeFilesFromPackage">
<ItemGroup>
<ExcludeFromPackageFiles Include="$(ExcludeFilesFromDeployment)" />
</ItemGroup>
</Target>

MVC网站后台分离的更多相关文章

  1. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

    上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模 ...

  2. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立

    上篇(asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作)文章讲解了开发过程中的准备工作,主要创建了项目数据库及项目,本文主要讲解项目M层的实现,M层这里 ...

  3. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发

    进行本文之前需要在数据库用户表里面增加一条用户数据,直接手动添加即可,未安全考虑密码一定要使用Md5加密后的,这里提供666666的Md5密文为(c831b04de153469d),本文完成登录模块的 ...

  4. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发1-准备工作

    /****** Object: 新闻表 Script Date: 2017/9/2 星期六 15:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENT ...

  5. ASP.NET MVC 网站开发总结(三) ——图片截图上传

    本着简洁直接,我们就直奔主题吧,这里需要使用到一个网页在线截图插件imgareaselect(请自行下载). 前台页面: <!DOCTYPE html> <html> < ...

  6. Asp.net MVC网站的基本结构

    Asp.net MVC网站的基本结构:Controller->IBLL(定义业务接口)->BLL->DA(调用Utility)->数据库 ,其中A->B表示A调用B 1. ...

  7. 夺命雷公狗---DEDECMS----24dedecms让网站头部分离

    我们这里来做一个让网站头部分离的工作,我们先看下index.htm的模版, 这里很明显就是用了一个div包围着而已,那么我们在模版目录下创建一个head.htm,如下所示: 然后我们再将刚才div里面 ...

  8. MVC 网站部署常见问题汇总

    一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...

  9. 前端示例MVC网站

    前端示例MVC网站 ASP.NET Zero 包含了一个公共web站点的前端页面和一个登陆页面.当您第一次运行项目的时候可以看到,如下图所示: 该前端网站有两个页面,一个是主页和关于我们.这些页面的内 ...

随机推荐

  1. CSS居中方法搜集

    转自这里:http://jinlong.github.io/blog/2013/08/13/centering-all-the-directions/ 兼容低版本IE的方法 html使用表格结构 背景 ...

  2. Hook SSDT中NtCreateProcessEx

    #ifdef __cplusplus extern "C" { #endif #include <ntddk.h> #ifdef __cplusplus } #endi ...

  3. SQL2008R2 无法读取此系统上以前注册的服务器的列表--网上方法不可行

    C:\Users\<username>\AppData\Local\Temp,然后创建两个命名为1和2的文件夹

  4. jQuery Fancybox插件介绍

    下面介绍一款jquery图片播放插件叫Fancybox,项目主页地址:http://fancybox.net/ Fancybox的特点如下: 1.可以支持图片.html文本.flash动画.ifram ...

  5. 使用C++做算法时,对内存的管理的办法

    使用C++做算法时,对内存的管理的办法 最近老是在想C++的内存控制机制,查了一些资料所以有点想法,自己记录一下免得以后自己忘了. 1. 需求 在做线性代数的算法时,首要的就实现Matrix这个类.由 ...

  6. TFS体系结构和概念

    TFS体系结构和概念 TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软 ...

  7. android开发之res下的menu (xml+代码的形式)

    转载请注明出处:http://blog.csdn.net/fth826595345/article/details/9199393 先来看Menu  XML文件如何编写: <?xml versi ...

  8. Android ListView多布局讲解

    Listview优化是一个老生常谈的事情了,其优化的方面也有很多种,例如,布局重用.在getView()中减少逻辑计算.减少在页面滑动的时候加在图片,而是在页面停止滚动的时候再加在图片.而今天要介绍的 ...

  9. 微信内嵌H5网页 解决js倒计时失效

    项目要求:将H5商城页面嵌套到公司微信公众号里 项目本身的开发跟移动端网页并无太多差异,只是这昨天遇到一个问题,说是棘手,到也简单. 用户下单后,在选择支付方式页面,有个倒计时的逻辑(从下单时开始计算 ...

  10. springMVC框架中json处理

    1.在项目中导入jackson-core.jar包 2.使用@ResponseBody注解,此注解会自动装换为json 如图: 3.如此,便可以得到json对象