Blazor: Lógica de precedência de rota alterada em aplicativos Blazor
Um bug na implementação de roteamento do Blazor afetava a forma como a precedência de rotas era determinada. Esse bug afeta as rotas catch-all ou as rotas com parâmetros opcionais no seu aplicativo Blazor.
Versão introduzida
5.0.1
Comportamento antigo
Com o comportamento errôneo, as rotas de menor precedência eram consideradas e correspondidas antes que rotas de maior precedência. Por exemplo, a rota {*slug}
era correspondida antes que /customer/{id}
.
Novo comportamento
O comportamento atual corresponde melhor ao comportamento de roteamento definido nos aplicativos ASP.NET Core. Primeiro a estrutura determina a precedência de rota para cada segmento. O comprimento da rota é usado apenas como critério secundário, para desempate.
Motivo da alteração
O comportamento original é considerado um bug de implementação. A meta é que o sistema de roteamento nos aplicativos Blazor tenha um comportamento semelhante ao sistema do restante do ASP.NET Core.
Ação recomendada
Se estiver atualizando de versões anteriores do Blazor para 5.x, use o atributo PreferExactMatches
no componente Router
. Esse atributo pode ser usado para aceitar o comportamento correto. Por exemplo:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
Quando PreferExactMatches
está definido como true
, a correspondência de rotas prefere correspondências exatas em vez de caracteres curinga.
APIs afetadas
Nenhum