.net core 如何在.net core 3中设置隐式路由

.net core 如何在.net core 3中设置隐式路由,.net-core,routes,.net Core,Routes,如何隐式定义路由?例如,我有一个名为TodoController的控制器,它有一些操作,如添加、获取、保存。。我不想为每一个指定路由属性 这是我的代码: public class TodoController : ControllerBase { [HttpPost] public IActionResult New() { return Ok(); } [HttpGet] public IActionResult Prova()

如何隐式定义路由?例如,我有一个名为TodoController的控制器,它有一些操作,如添加、获取、保存。。我不想为每一个指定路由属性

这是我的代码:

public class TodoController : ControllerBase
{
    [HttpPost]
    public IActionResult New()
    {
        return Ok();
    }

    [HttpGet]
    public IActionResult Prova()
    {
        return Ok();
    }
这是我的startup.cs

         if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });
我的研究成果

您可以使用两种类型的路由

一,

`

二,

两个变体都使用Rout属性,但没有他就没有变体。

services.AddMvc(option => option.EnableEndpointRouting = false).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);



app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller}/{action}",
        defaults: new { controller = "Home", action = "Index" }
    );

});
services.AddControllers();
  services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);


app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");

}
);