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">
PreferExactMatches
が true
に設定されている場合、ルートの照合時にワイルドカードよりも完全一致が優先されます。
影響を受ける API
なし
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET