Asp.net core 在Asp.Net Core 2.1中上载包含文件的ViewModels集合

Asp.net core 在Asp.Net Core 2.1中上载包含文件的ViewModels集合,asp.net-core,asp.net-web-api,Asp.net Core,Asp.net Web Api,我有一个用ASP.NET核心Web API 2.1编写的文档服务API。此API当前接受包含1个文件信息的ViewModel,然后将该文件和信息保存到服务器。我想添加添加多个文件的功能,但当作为集合的一部分上载时,我无法绑定ifformfile文件 ///正在上载的ViewModel。 公共类文件上载到 { 公共Guid Id{get;set;} 公共字符串说明{get;set;} 公共字符串名称{get;set;} 公共文件{get;set;} } ///工作完美。所有属性都绑定到fileUp

我有一个用ASP.NET核心Web API 2.1编写的文档服务API。此API当前接受包含1个文件信息的ViewModel,然后将该文件和信息保存到服务器。我想添加添加多个文件的功能,但当作为集合的一部分上载时,我无法绑定
ifformfile
文件

///正在上载的ViewModel。
公共类文件上载到
{
公共Guid Id{get;set;}
公共字符串说明{get;set;}
公共字符串名称{get;set;}
公共文件{get;set;}
}
///工作完美。所有属性都绑定到fileUploadRequest对象。
[HttpPost]
公共异步任务添加(FileUploadDto fileUploadRequest)
{
///过程
返回Ok();
}
///除文件属性外,所有属性都绑定到集合中的对象。
[HttpPost]
公共异步任务AddRange([FromForm]IEnumerable fileUploadRequests)
{
foreach(fileUploadRequests中的FileUploaddToFileUploadRequest)
{
//fileUploadRequest.File为空
}
返回Ok();
}
我正在使用Postman进行测试,并使用表单数据将内容上传到正文中,如下所示:

[0][Description]:测试(类型:Text)
[0][Name]:测试(类型:Text)
[0][File]:sample.txt(类型:File)

多部分/表单数据
在内容类型标题中设置

更新:
我已经找到了一个解决办法,通过做以下事情,但显然这不是最好的做法。我认识到问题在于这些文件没有绑定到我的ViewModels,而是存储在
Request.Form.files
集合中。不过,我不知道如何解决这个问题

[HttpPost]
公共异步任务AddRange([FromForm]IEnumerable fileUploadRequests)
{
var指数=0;
foreach(fileUploadRequests中的FileUploaddToFileUploadRequest)
{
//fileUploadRequest.File为空
fileUploadRequest.File=Request.Form.Files[index];
指数+=1;
}
返回Ok();
}

我最后传递了一个附加属性,以指定要在请求表单中使用的文件索引

///正在上载的ViewModel。
公共类文件上载到
{
公共Guid Id{get;set;}
公共字符串说明{get;set;}
公共字符串名称{get;set;}
公共int?文件索引{get;set;}
公共文件{get;set;}
}
///工作完美。所有属性都绑定到fileUploadRequest对象。
[HttpPost]
公共异步任务添加(FileUploadDto fileUploadRequest)
{
///过程
返回Ok();
}
///除文件属性外,所有属性都绑定到集合中的对象。
[HttpPost]
公共异步任务AddRange([FromForm]IEnumerable fileUploadRequests)
{
foreach(fileUploadRequests中的FileUploaddToFileUploadRequest)
{
fileUploadRequest.File=Request.Form.Files[fileUploadRequest.FileIndex???-1];
}
返回Ok();
}