В ASP.NET Core (v 2.1.5) вы можете создавать контроллеры, не наследуя их от класса Controller
(как вы знаете). И если вы это сделаете, вы должны использовать RouteAttribute
для определения ваших маршрутов. Но мне интересно, можем ли мы использовать неявную маршрутизацию (а не атрибутную маршрутизацию) вместе с атрибутом ApiController
вместе. Пример: наличие этой неявной маршрутизации в Startup.cs
:
app.UseMvc(routeBuilder =>
{
routeBuilder.MapRoute("api_default", "{controller}/{action}/{id?}");
});
А это Cotroller
[ApiController]
public class ValuesController
{
[HttpGet]
public string Get(int id) => id.ToString();
}
Будет выбрасывать это исключение:
InvalidOperationException: действие
TestApi.Controllers.ValuesController.Get не имеет атрибута
маршрут. Методы действий на контроллерах с пометкой
Атрибут ApiControllerAttribute должен быть маршрутизирован.
Есть ли способ избежать исключения?