Blazor: Logika priority tras se změnila v aplikacích Blazor
Chyba v implementaci směrování Blazor ovlivnila určení priority tras. Tato chyba ovlivňuje všechny trasy nebo trasy s volitelnými parametry v aplikaci Blazor.
Zavedená verze
5.0.1
Staré chování
Při chybném chování se trasy s nižší prioritou považují a odpovídají trasám s vyšší prioritou. Například {*slug}
trasa se shoduje před /customer/{id}
.
Nové chování
Aktuální chování přesněji odpovídá chování směrování definované v aplikacích ASP.NET Core. Architektura určuje prioritu trasy pro každý segment jako první. Délka trasy se používá pouze jako druhé kritérium k přerušení vazeb.
Důvod změny
Původní chování je považováno za chybu v implementaci. Jako cíl by se systém směrování v aplikacích Blazor měl chovat stejně jako systém směrování ve zbytku ASP.NET Core.
Doporučená akce
Pokud upgradujete z předchozích verzí Blazoru na verzi 5.x, použijte PreferExactMatches
atribut komponenty Router
. Tento atribut lze použít k vyjádření souhlasu se správným chováním. Příklad:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
Pokud PreferExactMatches
je nastavená hodnota true
, porovnávání tras dává přednost přesným shodám oproti zástupným znakům.
Ovlivněná rozhraní API
Žádné