IFormFile没有被dropzone uploadMultiple请求填充

我遇到的问题是IFormFile列表没有填充给定的文件,但是当我调用HttpContext.Request.Form.Files时; 然后我可以访问这些文件。 我更喜欢使用IFormFile,因为它似乎是新的Dotnet核心2.0的做事方式。

我有以下请求有效负载: 请求负载

使用以下请求标头: 请求标头

和Razor页面处理程序:

public async Task OnPostSend(ConditionResponse conditionResponse) { var files = HttpContext.Request.Form.Files; } 

条件响应模型:

 public class ConditionResponse { public List Plots { get; set; } public string Comments { get; set; } public List Files { get; set; } } 

在查看来自html5多文件上传的请求后,我注意到请求没有将索引添加到文件名(files [n])。 Dropzone.js就是这样做的,所以有一个解决方法。 如果您将paramName选项添加到Dropzone JS配置并让它调用返回文件的方法,您将获得与html5多文件上载相同的行为。

 function myParamName() { return "files"; } Dropzone.options.myDropzone = { uploadMultiple: true, paramName: myParamName, } 

接受的答案完美无缺,我不知道为什么以及如何,但它确实有效。 我只是想摆脱那个额外的function,也就是说,我们可以像这样使用它:

  Dropzone.options.myDropzone = { uploadMultiple: true, paramName: () => "files", } 

或者,如果旧浏览器也是目标:

  Dropzone.options.myDropzone = { uploadMultiple: true, paramName: function () { "files" }, }