Asp.net MVC系列教程1——搭建MVC环境、注册区域

作者 Guanghui Wang 日期 2017-02-14

简述

本系列是我学习果冻布丁喜之郎(http://yuangang.cnblogs.com)教程亲自实践整理的,有很多内容摘自原文。我在打算学习.net core时候偶然发现的这一系列教程,想按照这个教程回顾和巩固一下自己对MVC的理解。刚好这也是我第一篇技术文章,转自前辈的文章熟悉下写博客的脉络,谢谢作者果冻布丁喜之郎!由于我是边学边写,可能有些错误或者需要修改的地方,等完成整个教程后我会回过头来修正。

索引

  1. Asp.net MVC系列教程——1.搭建MVC环境、注册区域
  2. Asp.net MVC系列教程——2.创建数据库和数据模型
  3. Asp.net MVC系列教程——3.公共基础数据操作类RepositoryBase
  4. Asp.net MVC系列教程——4.Spring IOC, DI
  5. Asp.net MVC系列教程——5.登录功能, Spring, log4net
  6. Asp.net MVC系列教程——(5.2) 登录功能的实现,接口注入、log4net的使用
  7. Asp.net MVC系列教程——(5.3) 登录功能的实现,丰富数据表、建立关联
  8. Asp.net MVC系列教程——(5.4) 登录功能,创建与登录用户相关的接口和实现类
  9. Asp.net MVC系列教程——(5.5) 登录功能的实现,完善登录功能
  10. Asp.net MVC系列教程——(6) 控制器基类 主要做登录用户、权限认证、日志记录
  11. Asp.net MVC系列教程——(7.1) 模块管理,验证权限,展示模块列表
  12. Asp.net MVC系列教程——(7.2) 模块管理,模块的添加、修改、删除
  13. Asp.net MVC系列教程——(8) 权限管理,自定义权限,扩展权限
  14. Asp.net MVC系列教程——(9) 角色管理,分配权限
  15. Asp.net MVC系列教程—— (10)部门管理、岗位管理和员工管理
  16. Asp.net MVC系列教程—— (11)文件管理
  17. Asp.net MVC系列教程—— (12)程序与数据备份
  18. Asp.net MVC系列教程—— (13)客户管理
  19. Asp.net MVC系列教程—— (14)附数据库、发布项目
  20. Asp.net MVC系列教程—— (15)修改仓储IRepository、RepositoryBase
  21. Asp.net MVC系列教程—— (16)登录功能以及UI、数据库、仓储源码分享

项目准备

我们用的工具是:VS 2017RC + SqlServer 2014

希望大家对ASP.NET MVC有一个初步的理解,理论性的东西我们不做过多解释,有些地方不理解也没关系,会用就行了,用的多了自然就理解了。

项目开始

一、我们来创建一个MVC项目

解决方案名称叫做Mvc.Architect,为了方便管理我们的项目,创建三个解决方案文件夹,分别是:应用程序App、应用服务Services、应用类库CommonLib。

二、我们在应用服务里新建两个类库

  • Domain: EntityFramework数据模型,Model层
  • Service: 数据访问层,数据库操作类库,引用Domain类库

暂时看来作者没有提供服务层,而是服务层和数据访问层在一起

三、我们在应用类库里新建一个类库

Common: 应用类库

四、创建区域

我们先新建个文件夹Areas然后在文件夹下创建两个区域(右击→添加→区域)

  • ComManage: 一些公用的控制器和视图,比如文件上传等
  • SysManage: 我们的后台管理

五、修改注册类

新建完两个区域后,发现在每个区域下面都有一个注册的类文件,分别是ComManageAreaRegistration.cs和SysManageAreaRegistration.cs

我们来修改一下这两个注册类文件。修改了路由url,添加了new string[] { }命名空间。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Web.Mvc;

namespace WebPage.Areas.ComManage
{
public class ComManageAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "ComManage";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"ComManage_default",
"Com/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "WebPage.Areas.ComManage.Controllers" }
);
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Web.Mvc;

namespace WebPage.Areas.SysManage
{
public class SysManageAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "SysManage";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"SysManage_default",
"Sys/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "WebPage.Areas.SysManage.Controllers" }
);
}
}
}

六、修改路由配置类

我们修改一下路由配置类/App_Start/RouteConfig.cs,添加命名空间

1
2
3
4
5
6
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "WebPage.Controllers" }
);

总结

到此我们MVC就搭建好了,包括区域。我们下一篇创建个数据库和用户表。因为公共基础数据操作类要用到数据模型