Saya memiliki proyek Asp.Net core 2.2.
Baru-baru ini, saya mengubah versi dari .net core 2.2 ke .net core 3.0 Preview 8. Setelah perubahan ini saya melihat pesan peringatan ini:
menggunakan 'UseMvc' untuk mengkonfigurasi MVC tidak didukung saat menggunakan Perutean Endpoint. Untuk terus menggunakan 'UseMvc', setel 'MvcOptions.EnableEndpointRouting = false' di dalam 'ConfigureServices'.
Saya memahami bahwa dengan menyetel EnableEndpointRouting
ke false saya dapat menyelesaikan masalah, tetapi saya perlu tahu apa cara yang tepat untuk menyelesaikannya dan mengapa Perutean Titik Akhir tidak memerlukan UseMvc()
fungsi.
c#
asp.net-mvc
asp.net-core
.net-core
Mehrdad Babaki
sumber
sumber
Jawaban:
Secara umum, Anda harus menggunakan
EnableEndpointRouting
bukanUseMvc
, dan Anda bisa merujuk Perbarui perutean kode startup untuk detail langkah-langkah untuk mengaktifkanEnableEndpointRouting
.Untuk
UseMvc
, itu menggunakanthe IRouter-based logic
danEnableEndpointRouting
menggunakanendpoint-based logic
. Mereka mengikuti logika berbeda yang dapat ditemukan di bawah ini:Karena
EnableEndpointRouting
, ia menggunakan EndpointMiddleware untuk merutekan permintaan ke titik akhir.sumber
Saya menemukan solusinya, dalam dokumentasi resmi berikut " Migrasi dari ASP.NET Core 2.2 ke 3.0 ":
Ada 3 pendekatan:
Dalam kasus saya, hasilnya terlihat seperti itu
sumber
services.AddRazorPages();
bukannyaservices.AddMvc();
Ini berhasil untuk saya (tambahkan
Startup.cs
> metode ConfigureServices):sumber
Masalah yang saya temukan adalah karena pembaruan pada kerangka .NET Core. Versi rilis terbaru .NET Core 3.0 memerlukan keikutsertaan eksplisit untuk menggunakan MVC.
Masalah ini paling terlihat ketika seseorang mencoba untuk bermigrasi dari .NET Core yang lebih lama (2.2 atau versi pratinjau 3.0) ke .NET Core 3.0
Jika bermigrasi dari 2.2 ke 3.0, harap gunakan kode di bawah ini untuk memperbaiki masalah.
Jika menggunakan template .NET Core 3.0,
Metode ConfigServices setelah diperbaiki seperti di bawah ini,
Terima kasih
sumber
Untuk DotNet Core 3.1
Gunakan di bawah ini
File: Startup.cs public void Configure (aplikasi IApplicationBuilder, IHostingEnvironment env) {
sumber
Anda dapat menggunakan: dalam metode ConfigureServices:
Dan untuk metode Konfigurasi:
sumber
Ini bekerja untuk saya di .Net Core 3.1.
sumber
Gunakan Kode Di Bawah Ini
sumber