Blazor: Logika prioritas rute berubah di aplikasi Blazor
Bug dalam implementasi perutean Blazor memengaruhi bagaimana prioritas rute ditentukan. Bug ini memengaruhi rute atau rute catch-all dengan parameter opsional dalam aplikasi Blazor Anda.
Versi yang diperkenalkan
5.0.1
Perilaku yang lama
Dengan perilaku yang salah, rute dengan prioritas yang lebih rendah dipertimbangkan dan dicocokkan melalui rute dengan prioritas yang lebih tinggi. Misalnya, {*slug}
rute dicocokkan sebelum /customer/{id}
.
Perilaku yang baru
Perilaku saat ini lebih cocok dengan perilaku perutean yang ditentukan dalam aplikasi ASP.NET Core. Kerangka kerja menentukan prioritas rute untuk setiap segmen terlebih dahulu. Panjang rute hanya digunakan sebagai kriteria kedua untuk memutuskan ikatan.
Alasan untuk berubah
Perilaku asli dianggap sebagai bug dalam implementasi. Sebagai tujuan, sistem perutean di aplikasi Blazor harus berperilaku sama seperti sistem perutean di sisa ASP.NET Core.
Tindakan yang direkomendasikan
Jika memutakhirkan dari versi Blazor sebelumnya ke 5.x, gunakan PreferExactMatches
atribut pada Router
komponen. Atribut ini dapat digunakan untuk ikut serta dalam perilaku yang benar. Contohnya:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="true">
Ketika PreferExactMatches
diatur ke true
, pencocokan rute lebih memilih kecocokan yang tepat daripada kartubebas.
API yang Terpengaruh
Tidak ada