В чем разница между HttpContext.Request.Form.Files и параметром действия

#asp.net #angularjs #asp.net-core #dropzone.js

#asp.net #angularjs #asp.net-core #dropzone.js

Вопрос:

В чем разница между следующими методами?

Это

 [HttpPost]
public IActionResult Upload()
{
    var files = HttpContext.Request.Form.Files;

    // Process files

    return Ok();
}
  

и это

 [HttpPost]
public IActionResult Upload(ICollection<IFormFile> files)
{
    // Process files

    return Ok();
}
  

Похоже, что ng-dropzone работает только с первым вариантом.

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

1. Файлы в HttpContext объявляются как IFormFileCollection не как ICollection<IFormFile> . Вы пробовали свой второй подход, используя IFormFileCollection в качестве типа параметра?

2. @Daniel J.G. Да. Он также не работает с ng-dropzone

3. Вам также нужно будет добавить [FromBody] атрибут к параметру, как в Upload([FromBody]IFormFileCollection files) , чтобы связующее устройство модели выглядело как все, что исходит из тела. Не уверен, что этого будет достаточно для привязки файлов