Ошибка, вызывающая неоднозначный HTTP-метод для действия

#.net #.net-core #swagger #http-delete

#.net #.net-core #чванство #http-удалить

Вопрос:

мне нужно знать, почему возникает следующая ситуация, и если существует другое решение:

На самом деле мой Api выдает ошибку, когда с помощью Swagger в контроллере метода используется действие HttpDelete и оформление маршрута:

 [Route("delete/{id}"), HttpDelete("{id}")]
public async Task<IActionResult> DeleteSession(string id)
{   //... any code
}
  

введите описание изображения здесь

На самом деле я устраняю ошибку только при удалении оформления маршрута:

 [HttpDelete("{id}")]
public async Task<IActionResult> DeleteSession(string id)
{ //... any code}
  

введите описание изображения здесь

Я хочу знать, почему возникает эта ошибка?

Ответ №1:

Измените это:

 [Route("delete/{id}"), HttpDelete("{id}")]
  

К этому:

 [HttpDelete, Route("{id}")]
  

То, как вы это делали, определяет маршрут дважды … оба раза по-разному, что вызывает конфликты.

Комментарии:

1. Да, я поставил [HttpDelete, Route(«удалить /{id}»)]