Partager via


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.

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