.Net Core Web API Post не попадает в конечную точку маршрута

У меня определен следующий маршрут .Net Core API.

[HttpPost("/addproduct")]
[Consumes("application/json")]
public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO){}

У меня уже есть следующие атрибуты, определенные в классе:

[EnableCors()]
[Produces("application/json")]
[Route("api/[controller]")]

Я называю его так: https://localhost:xxxxx/api/products/addproduct и передаю ему полезную нагрузку, которая представляет productDTO. Почему этот маршрут не попадает?


person mo_maat    schedule 12.09.2020    source источник
comment
Используйте 1_   -  person atiyar    schedule 13.09.2020


Ответы (1)


Проблема связана с атрибутом маршрутизации, используемым в HttpPost.

Как определено выше, метод действия AddProduct соответствует следующему URL-адресу:

https://localhost:xxxx/addproduct

Даже если вы используете замену токена для имени контроллера, используя начальную косую черту, вы переопределяете этот маршрут в методе AddProduct.

Чтобы правильно перейти к методу, удалите ведущую косую черту следующим образом:

    [HttpPost("addproduct")]
    [Consumes("application/json")]
    public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO productDto)

Для получения дополнительной информации о маршрутизации атрибутов или маршрутизации контроллера в целом прочтите эту страницу в Microsoft Docs

person codejumper    schedule 13.09.2020