【问题标题】:Routing in ASP.NET CORE Web APIASP.NET CORE Web API 中的路由
【发布时间】:2021-06-28 16:50:06
【问题描述】:

asp.net core web api中如何使用常规路由和属性路由?

是否可以结合传统路由和属性路由,类似于 asp.net web api?

如何在asp.net core web api中指定默认路由?

【问题讨论】:

标签: asp.net-core-webapi


【解决方案1】:

在asp.net core web api和mvc中可以指定路由

  1. Configure 方法中的 Startup.cs
  2. 控制器

您可以在launchSettings.json 中指定默认路由。在所有配置文件的 launchUrl 属性中设置控制器名称

.net core 2.2,在Startup.cs配置方法,

app.UseMvc(routes =>
{
    routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});

.net core 3.1,在Startup.cs配置方法,

app.UseRouting();

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });

【讨论】:

    【解决方案2】:

    根据微软官方文档,属性路由成为 Asp.net 核心 Web API 应用程序中的一项要求。

    https://docs.microsoft.com/en-us/aspnet/core/web-api/index?view=aspnetcore-2.1#attribute-routing-requirement

    你必须像下面这样定义属性路由。

    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    

    操作无法通过 UseMvc 定义的常规路由或 在 Startup.Configure 中使用 MvcWithDefaultRoute。

    【讨论】:

      猜你喜欢
      • 2018-08-28
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 2020-03-23
      • 2017-04-13
      • 2017-02-03
      • 2017-11-20
      相关资源
      最近更新 更多