Blazor: logika pierwszeństwa trasy została zmieniona w aplikacjach platformy Blazor
Usterka w implementacji routingu platformy Blazor wpływała na sposób określania pierwszeństwa tras. Ta usterka ma wpływ na trasy lub trasy typu catch-all z opcjonalnymi parametrami w aplikacji Blazor.
Wprowadzona wersja
5.0.1
Stare zachowanie
W przypadku błędnego zachowania trasy o niższym pierwszeństwie są brane pod uwagę i dopasowane do tras o wyższym prioryence. Na przykład {*slug}
trasa jest dopasowywana przed /customer/{id}
.
Nowe zachowanie
Bieżące zachowanie jest bardziej zgodne z zachowaniem routingu zdefiniowanym w aplikacjach ASP.NET Core. Struktura określa pierwszeństwo trasy dla każdego segmentu najpierw. Długość trasy jest używana tylko jako drugie kryterium do zerwania więzi.
Przyczyna wprowadzenia zmiany
Oryginalne zachowanie jest uznawane za usterkę w implementacji. Jako cel system routingu w aplikacjach Blazor powinien zachowywać się tak samo jak system routingu w pozostałej części ASP.NET Core.
Zalecana akcja
W przypadku uaktualniania z poprzednich wersji programu Blazor do wersji 5.x użyj atrybutu PreferExactMatches
w składniku Router
. Ten atrybut może służyć do wyrażenia zgody na prawidłowe zachowanie. Na przykład:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
Gdy PreferExactMatches
jest ustawiona wartość true
, dopasowanie tras preferuje dokładne dopasowania dla symboli wieloznacznych.
Dotyczy interfejsów API
Brak