.net core 3 , MVC , Using 'UseMvcWithDefaultRoute' to configure MVC is not supported while using Endpoint Routing
I found the solution, in the following official documentation "Migrate from ASP.NET Core 2.2 to 3.0":
Thre are 3 approaches:
- Disable endpoint Routing.
(add in Startup.cs)
services.AddMvc(option => option.EnableEndpointRouting = false)
OR
- Replace UseMvc or UseSignalR with UseEndpoints.
In my case, the result looked like that
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseRouting();
app.UseCors();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}");
});
}
}
OR
- Use AddControllers() and UseEndpoints()
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseRouting();
app.UseCors();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
This doesn't exist for ASP.NET Core 3 as you can see here it is only supported until 2.2.
You need to switch to app.UseMvc();
when registering full MVC pipeline.
For APIs you need to do the following
app.UseRouting();
app.UseEndpoints(builder => builder.MapControllers());