Asp.net 5.0 Area 模块使用教程

Asp.net 5.0 学习教程, Area 模块使用教程. 如果你是新学Asp.net的,那么直接学asp.net 5.0吧,今年刚出的最新的 asp.net框架, 以后也就不叫asp.net core了, 直接就asp.net.

 

Area的概念是什么意思呢, 就是在一个很大型的项目里面, 传统的MVC模式,已经不足以定义各个模块,组件了.举个例子, 阿里巴巴旗下,有很多网站, 比如淘宝,支付宝, 天猫.

 

如果你的项目比较大了,那肯定不止一个或者几个Controller, Area 就是为了这种复杂的项目设计的. 你可以理解为一个个的 子站点,或者功能模块, 比如 支付系统, 会员注册登录系统, 积分排行系统, 订单中心系统, 诸如此类的.

 

我们先看一个典型的 目录结构, 图来自于asp.net官方


 

我们可以看到, 一个大的项目,下面的Areas 有两个大的模块, 一个是产品模块,一个是服务模块, 他们下面都有各自的 Controller, Views 目录.

 

这样划分功能模块,好处是可以多个开发团队协作开发,比如产品开发的同学,就负责产品的开发, 负责写服务接口的同学,就在服务这个Area下面写代码,提交代码.

 

因为有了Area的设计,所以整个庞大的站点,也变得尽然有序了.

 

学Asp.net, 如果先了解了Areas的概念,就会发现, 原来Asp.net也可以用来干大活的. 不管是一个小型的博客,或者是一个庞大的电商网站, 都能轻松应对

 

Areas 的路由配置

 

先看代码


 

endpoints.MapAreaControllerRoute(
                    name: "member",
                    areaName: "member",
                    pattern: "/member/{controller=Home}/{action=Index}/{id?}"
                    );

方法MapAreaControllerRoute是新增一个Area的路由定义, name是路由规则名称, 不要跟其他规则重名就可以, 比如我的Area叫 member,我就写name 等于member, 然后areaName就是你的模块名, 我的模块是Member, 所以这里写member, 后面第三个pattern参数,就是具体的映射关系了.

大家可以看左边, Areas/Member下面,就是具体的代码了. Controllers 和Views都一一对应的关系.

 

Areas Controller

控制器代码示例


 

需要注意,一个是这里的Namespace, 正好对应了文件目录

 

然后就是这个HomeController的class前面,一定要加上Area注解, 跟模块名对上号

 

好了. 到这里, 关于Area 的配置,就简单介绍完了.只要这样配置了, 你的开发就可以跟正常的MVC一样开发就行了.

 

代码写好了, 运行, 浏览器访问,显示的应该就是模块的VIew了


 

对应的Views 代码

 

分类: .NET 标签: 发布于: 2020-12-26 19:38:47, 点击数: