Ошибка 405 при отправке файла в dotnet webapi 5

#c# #.net-core #asp.net-core-webapi

Вопрос:

Ошибка 405 при попытке проверить мой api с помощью swagger. Мой api принимает данные в следующем формате.

  [HttpPost("AddEmployee")]
  public IActionResult AddEmployee(EmployeeDto employee, IFormFile file )
   {

   }
 

Получение ответа

 {
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
  "title": "Unsupported Media Type",
  "status": 415,
  "traceId": "00-19508b3749296a4bb84e43b5d21dc6c7-cabb1ff5b2609a43-00"
}
 

Ответ №1:

Насколько я знаю, в asp.net основной веб-api , если вы не установите [FromForm] , он просто примет запрос формата json.

Поэтому я предлагаю вам установить значение [FromForm] для каждого параметра, как показано ниже:

 [HttpPost("AddEmployee")]
  public IActionResult AddEmployee([FromForm]EmployeeDto employee, [FromForm]IFormFile file )
   {

   }
 

Но для чванства он не смог установить правильный параметр, если параметры веб-api содержат модель и файл ifromfile.

Я предлагаю вам создать новую модель представления для этого метода api, которая содержит файл ifromfile, как показано ниже:

 public class EmployeeDto
{
    public int Id { get; set; }
    public string Wtest { get; set; }

    public IFormFile file { get; set; }
}
 

API:

     [HttpPost("AddEmployee")]
    public IActionResult AddEmployee([FromForm]EmployeeDto employee)
    {
        return Ok();
    }