- Published on
ASP.NET Core 2.2 新的 Endpoint Routing
在 ASP.NET Core 2.2 的版本,Endpoint Routing 的行為和之前的版本不太一樣,來看一下差異的部份
設定
- 在 2.2 的版本,預設
Endpoint Routing是啟用的,可以修改 MVC 的設定把它關掉
services.AddMvc(options => options.EnableEndpointRouting = false)
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
測試的連結
- 下面會產生這個 About 的連結來當測試

產生沒有參數的連結
- 有 Enpoint Routing
- 以
Actionnmae 產生連結
- 以

- 沒有 Enpoint Routing
- 保留傳入參數的大小寫

產生不存在的連結
- 有 Enpoint Routing
- 無法產生連結

- 沒有 Enpoint Routing
- 一樣產生連結

產生非空參數的連結
- 有 Endpoint Routing
- 無法產生連結

- 沒有 Endpoint Routing
- 一樣產生連結

產生可為空參數的連結
- 不管有跟沒有 Endpoint Routing 的結果一樣
- 以
Actionname 產生連結
- 以

後記
- 感覺上這個改變是為了不要產生錯誤的連結,不過如果不清楚的人可能會覺得為什麼行為和之前不一樣
- 有關於相關的改動可以參考官方文件 Differences from earlier versions of routing
