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.

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 właściwe 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