首页 > 解决方案 > 如何在 Core 中获得经典的路由约定?

问题描述

我正在使用 Core 2 构建一个 Web API,我的方法命名如下:

public ActionResult<xxx> Get()
public void Post(...)
// etc

我似乎无法为他们创建 asp.net 路由,除非我指定动词,我不想 -[HttpGet], [HttpPost]

我试过[assembly: ApiConventionType(typeof(DefaultApiConventions))]Startup课堂上添加,但似乎没有奏效。

这在 ASP.NET Web API 中完美运行。

标签: asp.net-core

解决方案


我没试过,但似乎你可以安装这个 Nuget 包来获取函数名称 -> HTTP 方法约定:https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.WebApiCompatShim/

您正在寻找的约定是这个:https ://github.com/aspnet/Mvc/blob/a6199bbfbab05583f987bae322fb04566841aaea/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Conventions/WebApiActionConventionsApplicationModelConvention.cs#L85

好像您将其添加到ConfigureServices

services.AddMvc().AddWebApiConventions();

推荐阅读