Blazor : La logique de priorité des itinéraires a changé dans les applications Blazor
Un bogue dans l’implémentation du routage Blazor a affecté la façon dont la précédence des routes a été déterminée. Ce bogue affecte les routes fourre-tout ou celles avec des paramètres facultatifs dans votre application Blazor.
Version introduite
5.0.1
Ancien comportement
Avec le comportement erroné, les routes avec une priorité inférieure sont prises en compte et mises en correspondance sur les routes avec une priorité plus élevée. Par exemple, la route {*slug}
est mise en correspondance avant /customer/{id}
.
Nouveau comportement
Le comportement actuel correspond plus étroitement au comportement de routage défini dans des applications ASP.NET Core. L’infrastructure détermine d’abord la priorité de route pour chaque segment. La longueur de la route n’est utilisée que comme deuxième critère pour rompre les liens.
Raison du changement
Le comportement d’origine est considéré comme un bogue dans l’implémentation. En guise d’objectif, le système de routage dans les applications Blazor doit se comporter de la même façon que le système de routage dans le reste de ASP.NET Core.
Action recommandée
Si vous effectuez une mise à niveau à partir de versions précédentes de Blazor vers la version 5.x, utilisez l’attribut PreferExactMatches
sur le composant Router
. Cet attribut peut être utilisé pour choisir le bon comportement. Par exemple :
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
Lorsque PreferExactMatches
est défini sur true
, la correspondance de route préfère les correspondances exactes aux caractères génériques.
API affectées
None