Bagikan melalui


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.

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