Share via


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.

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