Blazor: Blazor アプリにおけるルート優先順位のロジックの変更

Blazor のルーティング実装のバグによって、ルートの優先順位の決定方法が影響を受けました。 このバグは、キャッチオール ルート、または Blazor アプリ内の省略可能なパラメーターを使用するルートに影響します。

導入されたバージョン

5.0.1

以前の動作

誤った動作により、優先順位の高いルートよりも優先順位の低いルートの方が先に検討され、照合されます。 たとえば、{*slug} ルートが /customer/{id} よりも先に照合されます。

新しい動作

現在の動作は、ASP.NET Core アプリに定義されているルーティング動作により近くなりました。 このフレームワークにより、まず各セグメントのルートの優先順位が決まります。 ルートの長さは、優先順位が同じ場合の 2 番目の条件としてのみ使用されます。

変更理由

元の動作は、実装のバグと考えられています。 目標として、Blazor アプリのルーティング システムは、ASP.NET Core の他の部分のルーティング システムと同じように動作する必要があります。

以前のバージョンの Blazor から 5.x にアップグレードする場合は、Router コンポーネントの PreferExactMatches 属性を使用します。 この属性を使用して、正しい動作をオプトインできます。 次に例を示します。

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

PreferExactMatchestrue に設定されている場合、ルートの照合時にワイルドカードよりも完全一致が優先されます。

影響を受ける API

なし