Condividi tramite


Blazor: logica di precedenza di route modificata nelle Blazor app

Un bug nell'implementazione del Blazor routing ha influenzato la determinazione della priorità delle route. Questo bug influisce sui percorsi catch-all o con parametri facoltativi all'interno dell'app Blazor.

Versione introdotta

5.0.1

Comportamento precedente

Con il comportamento errato, le route con precedenza inferiore vengono considerate e abbinate alle route con precedenza più elevata. Ad esempio, la {*slug} route viene confrontata prima di /customer/{id}.

Nuovo comportamento

Il comportamento corrente corrisponde più strettamente al comportamento di routing definito nelle app ASP.NET Core. Il framework determina innanzitutto la precedenza della route per ogni segmento. La lunghezza della route viene usata solo come secondo criterio per interrompere i legami.

Motivo della modifica

Il comportamento originale è considerato un bug nell'implementazione. Come obiettivo, il sistema di routing nelle Blazor app dovrebbe comportarsi allo stesso modo del sistema di routing nel resto di ASP.NET Core.

Se si esegue l'aggiornamento da versioni precedenti di Blazor a 5.x, usare l'attributo PreferExactMatches nel Router componente. Questo attributo può essere usato per acconsentire esplicitamente al comportamento corretto. Per esempio:

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

Quando PreferExactMatches è impostato su true, l'abbinamento delle route preferisce corrispondenze esatte rispetto ai caratteri jolly.

Le API interessate

None