Blazor:Blazor 應用程式中的路由優先順序邏輯已變更

Blazor 路由實作內的錯誤會影響路由優先順序的判斷方式。 這個錯誤會影響 Blazor 應用程式內的全部擷取路由,或具備選擇性參數的路由。

導入的版本

5.0.1

舊的行為

在錯誤的行為之下,系統會將優先順序較低的路由視為優先順序較高的路由,並且與之比對。 例如,系統會先比對 {*slug} 路由,再比對 /customer/{id}

新的行為

目前的行為比較符合 ASP.NET Core 應用程式中定義的路由行為。 此架構會先判斷各區段的路由優先順序。 路由的長度僅為中斷繫結的次要準則。

變更原因

系統會在實作中將原本的行為視為錯誤。 我們的目標,是讓 Blazor 應用程式中的路由系統擁有與其餘 ASP.NET Core 路由系統相同的行為。

若要從先前的 Blazor 版本升級至 5.x,請在 Router 元件上使用 PreferExactMatches 屬性。 這項屬性可用來選擇加入正確的行為。 例如:

<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">

PreferExactMatches 設為 true 時,路由比對會優先使用完全相符而非萬用字元。

受影響的 API