Blazor: Routningspriorlogik har ändrats i Blazor-appar
En bugg i Blazor-routningsimplementeringen påverkade hur prioriteten för vägar fastställdes. Den här buggen påverkar catch-all-vägar eller vägar med valfria parametrar i Din Blazor-app.
Version introducerad
5.0.1
Gammalt beteende
Med det felaktiga beteendet betraktas vägar med lägre prioritet och matchas över vägar med högre prioritet. Till exempel {*slug}
matchas vägen före /customer/{id}
.
Nytt beteende
Det aktuella beteendet överensstämmer närmare med routningsbeteendet som definierats i ASP.NET Core-appar. Ramverket avgör vägens prioritet för varje segment först. Ruttens längd används endast som ett andra villkor för att bryta banden.
Orsak till ändringen
Det ursprungliga beteendet anses vara en bugg i implementeringen. Som mål bör routningssystemet i Blazor-appar fungera på samma sätt som routningssystemet i resten av ASP.NET Core.
Rekommenderad åtgärd
Om du uppgraderar från tidigare versioner av Blazor till 5.x använder du PreferExactMatches
attributet för komponenten Router
. Det här attributet kan användas för att välja rätt beteende. Till exempel:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
När PreferExactMatches
är inställt på true
föredrar vägmatchning exakta matchningar framför jokertecken.
Berörda API:er
Ingen