Как мне получить классические соглашения о маршрутизации в Core?

#asp.net-core

#asp.net-core

Вопрос:

Я создаю веб-API с Core 2, и мои методы называются как:

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

Кажется, я не могу сделать asp.net направляйте к ним, если я не укажу глагол, которого я не хочу — [HttpGet], [HttpPost] и т. Д

Я пробовал добавлять [assembly: ApiConventionType(typeof(DefaultApiConventions))] поверх Startup класса, но, похоже, это не помогает.

Это отлично работает в ASP.NET Веб-API.

Ответ №1:

Я не пробовал, но, похоже, вы можете установить этот пакет 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();