最近打算抽時間看一下 ASP.NET Core MVC 的源碼,特此把自己學(xué)習(xí)到的內(nèi)容記錄下來,也算是做個筆記吧。

路由作為 MVC 的基本部分,所以在學(xué)習(xí) MVC 的其他源碼之前還是先學(xué)習(xí)一下路由系統(tǒng),ASP.NET Core 的路由系統(tǒng)相對于以前的 Mvc 變化很大,它重新整合了 Web Api 和 MVC。

路由源碼地址 :https://github.com/aspnet/Routing

路由(Routing)功能介紹

路由是 MVC 的一個重要組成部分,它主要負責將接收到的 Http 請求映射到具體的一個路由處理程序上,在MVC 中也就是說路由到具體的某個 Controller 的 Action 上。

路由的啟動方式是在ASP.NET Core MVC 應(yīng)用程序啟動的時候作為一個中間件來啟動的,詳細信息會在下一篇的文章中給出。

通俗的來說就是,路由從請求的 URL 地址中提取信息,然后根據(jù)這些信息進行匹配,從而映射到具體的處理程序上,因此路由是基于URL構(gòu)建的一個中間件框架。
路由還有一個作用是生成響應(yīng)的的URL,也就是說生成一個鏈接地址可以進行重定向或者鏈接。

路由中間件主要包含以下幾個部分:

  • URL 匹配

  • URL 生成

  • IRouter 接口

  • 路由模板

  • 模板約束

Getting Started

ASP.NET Core Routing 主要分為兩個項目,分別是 Microsoft.AspNetCore.Routing.Abstractions,Microsoft.AspNetCore.Routing。前者是一個路由提供各功能的抽象,后者是具體實現(xiàn)。

我們在閱讀源碼的過程中,我建議還是先大致瀏覽一下項目結(jié)構(gòu),

網(wǎng)友評論