最近打算抽时间看一下 ASP.NET Core MVC 的源码,特此把自己学习到的内容记录下来,也算是做个笔记吧。
路由作为 MVC 的基本部分,所以在学习 MVC 的其他源码之前还是先学习一下路由系统,ASP.NET Core 的路由系统相对于以前的 Mvc 变化很大,它重新整合了 Web Api 和 MVC。
路由源码地址 :https://github.com/aspnet/Routing
路由(Routing)功能介绍
路由是 MVC 的一个重要组成部分,它主要负责将接收到的 Http 请求映射到具体的一个路由处理程序上,在MVC 中也就是说路由到具体的某个 Controller 的 Action 上。
路由的启动方式是在ASP.NET Core MVC 应用程序启动的时候作为一个中间件来启动的,详细信息会在下一篇的文章中给出。
通俗的来说就是,路由从请求的 URL 地址中提取信息,然后根据这些信息进行匹配,从而映射到具体的处理程序上,因此路由是基于URL构建的一个中间件框架。
路由还有一个作用是生成响应的的URL,也就是说生成一个链接地址可以进行重定向或者链接。
路由中间件主要包含以下几个部分:
URL 匹配
URL 生成
IRouter 接口
路由模板
模板约束
Getting Started
ASP.NET Core Routing 主要分为两个项目,分别是 Microsoft.AspNetCore.Routing.Abstractions
,Microsoft.AspNetCore.Routing
。前者是一个路由提供各功能的抽象,后者是具体实现。
我们在阅读源码的过程中,我建议还是先大致浏览一下项目结构,