Dela via


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.

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å trueföredrar vägmatchning exakta matchningar framför jokertecken.

Berörda API:er

Ingen