成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET Core端點路由中三種讓人困惑的路由函數

商務辦公
早先提及了端點路由app.UseEndpoints, 端點路由強調的是端點和路由,其核心目的是將請求落地點與路由尋址方式解耦。

 [[419724]]

早先提及了端點路由app.UseEndpoints, 端點路由強調的是端點和路由,其核心目的是將請求落地點與路由尋址方式解耦。

《ASP.NET Core端點路由作用原理》

這里面有幾個容易混淆的函數

  • MapControllerRoute
  • MapDefaultControllerRoute
  • MapControllers

有什么不同?什么時候該用哪一個?

1. MapControllerRoute

Adds endpoints for controller actions to the Microsoft.AspNetCore.Routing.IEndpointRouteBuilder and specifies a route with the given name, pattern, defaults, constraints, and dataTokens.

約定路由(conventional routing), 通常用在MVC項目中;

需要傳參name pattern defaults constraints dataTokens;

你可以在項目中這樣寫:

  1. endpoints.MapControllerRoute( 
  2.   name:"default"
  3.   pattern:"{controller=Home}/{action=index}/{id?}" 
  4. ); 

如果請求url滿足 {host}{controller_name}{action_name}{option_id} , 將命中Controller=controller_name Action=action_name的方法體;如果url不提供controller、action名稱,默認命中home/index 方法體。

說到底這種寫法:

是MVC web項目的早期寫法,讓用戶請求的url去匹配開發者的Controller-Action名稱。

如今約定路由并不是主流,因為所謂的約定路由對于用戶瀏覽并不友好,而且暴露了后端開發者定義的瑣碎的Controller、Action名稱。

實際上,不應該讓用戶的url去匹配開發者定義的Controller-Action名稱(太丑陋的行為),而應該讓開發者去匹配用戶想要使用的url, 這樣特性路由出現了。

2. MapDefaultControllerRoute

Adds endpoints for controller actions to the Microsoft.AspNetCore.Routing.IEndpointRouteBuilder and adds the default route {controller=Home}/{action=Index}/{id?}.

endpoints.MapDefaultControllerRoute(); 正是上面約定路由的默認樣例,這沒什么好聊的。

3. MapControllers

Adds endpoints for controller actions to the Microsoft.AspNetCore.Routing.IEndpointRouteBuilder without specifying any routes.

不對約定路由做任何假設,也就是不使用約定路由,依賴用戶的特性路由, 一般用在WebAPI項目中。

全文梳理就會發現: 官方英文描述屢次出現的route,其實特指的是約定路由。

這樣的描述我其實是不茍同的:

路由在.NET里面, 已經被普世認定為“約定路由”和“特性路由”,基于這種認知,我讀了好幾遍官方英文描述,其實沒讀出個所以然的。

官方英文描述使用 “route”來特指“約定路由”會誤導開發者。

https://github.com/dotnet/aspnetcore/blob/main/src/Mvc/Mvc.Core/src/Builder/ControllerEndpointRouteBuilderExtensions.cs

責任編輯:武曉燕 來源: 精益碼農
相關推薦

2024-08-19 01:00:00

讀取配置文件接口應用程序

2024-03-15 11:35:11

配置文件應用程序開發

2009-08-03 17:41:20

ASP.NET Cac

2009-07-29 11:44:30

ASP.NET緩存Cache

2014-08-21 09:31:06

路由

2013-05-31 10:36:56

ASP.net文件上傳

2009-07-22 15:02:02

ASP.NET MVC

2022-07-22 20:00:01

高可用路由

2009-12-09 09:48:38

solaris靜態路由

2015-01-07 09:32:50

ASP.NET MVC路由

2009-11-10 13:19:09

動態路由協議

2010-03-12 09:38:58

2021-02-19 06:54:33

配置系統ASP.NET Cor

2009-12-10 15:46:22

動態路由協議

2018-08-20 08:03:46

跨平臺 Web操作系統

2024-09-09 07:37:51

AspJWT權限

2024-06-11 09:00:00

異步編程代碼

2024-12-05 08:14:41

2012-03-19 10:17:19

ASP.NET

2022-06-13 09:05:33

Ramda函數簽名
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩av电影院 | 欧美日产国产成人免费图片 | 亚洲综合大片69999 | 国产一区二区三区在线观看免费 | 99re视频在线 | a级片播放| 91国内视频在线 | 91久久久久久久久久久 | 日韩免费av一区二区 | 日韩欧美成人一区二区三区 | 99精品久久99久久久久 | 久久久久久毛片免费观看 | 日韩欧美亚洲 | 韩日精品视频 | 精品一二三区视频 | 国产欧美一区二区三区在线播放 | 亚洲国产精品日韩av不卡在线 | 日韩一区二区三区av | 在线看国产 | 一区二区福利视频 | 亚洲精品观看 | 性高湖久久久久久久久 | 中文字幕国产一区 | 2019中文字幕视频 | 丁香色婷婷 | 国产精品久久久久久久模特 | 欧美精品在线免费 | 国精日本亚洲欧州国产中文久久 | 亚洲人成人一区二区在线观看 | 91av入口| 国产一区二区三区精品久久久 | 国产在线高清 | 北条麻妃一区二区三区在线视频 | 成人国产精品久久久 | 天天操天天天 | 国产剧情一区 | 国产黄色在线 | 天天看天天爽 | 亚洲三区在线播放 | 久久久999精品 | 欧美日韩精品一区二区 |