В атрибут маршрутизации вы должны изменить свой маршрут контроллера на [Route("api")]
, чтобы принимать все вызовы от https://example.com/api
.
Примечание: это повлияет на все маршрутывнутри контроллера Reports .
[Route("api")]
public class ReportsController : ApiController
, а затем украсьте свое действие атрибутом маршрута, как показано ниже:
[Route("{id}/[controller]/[action]")]
таким образом, вы можете вызвать метод действия с помощью https://example.com/api/435ABC/Reports/EndOfYear
.
В маршрутизации на основе конвенций следует только добавить маршрут в UseMvc метод и удалить Route атрибутов из контроллера и действия:
app.UseMvc(routes =>
{
routes.MapRoute(name: "default", template: "api/{controller=Home}/{action=Index}"); // this line specifies default route
routes.MapRoute(name: "Reports", template: "api/{id}/{controller=Reports}/{action=EndOfYear}"); // this line specifies your custom route
});