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
無