Compartir a través de


Blazor: Lógica de precedencia de ruta cambiada en aplicaciones Blazor

Un error en la implementación de enrutamiento de Blazor afectaba al modo en que se determinaba la prioridad de las rutas. Este error afectaba a las rutas de captura general o a las rutas con parámetros opcionales dentro de la aplicación Blazor.

Versión introducida

5.0.1

Comportamiento anterior

Con el comportamiento erróneo, se tenían en cuenta primero las rutas con menor prioridad y se hacían coincidir antes que las rutas con mayor prioridad. Por ejemplo, la ruta {*slug} se hacía coincidir antes que la ruta /customer/{id}.

Comportamiento nuevo

El comportamiento actual coincide más estrechamente con el comportamiento de enrutamiento definido en las aplicaciones de ASP.NET Core. El marco determina primero la prioridad de la ruta para cada segmento. La longitud de la ruta solo se usa como segundo criterio para priorizar en caso de igualdad.

Motivo del cambio

El comportamiento original se considera un error en la implementación. Como objetivo, el sistema de enrutamiento de las aplicaciones Blazor debe comportarse del mismo modo que el sistema de enrutamiento del resto de ASP.NET Core.

Si actualiza desde versiones anteriores de Blazor a 5.x, use el atributo PreferExactMatches en el componente Router. Este atributo se puede usar para escoger el comportamiento correcto. Por ejemplo:

<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">

Cuando PreferExactMatches se establece en true, la coincidencia de rutas prefiere las coincidencias exactas a los caracteres comodín.

API afectadas

None