Web Api多文件上传如何绑定到模型?绑定失效问题排查
自动绑定失败原因及修复方案
1. 根本原因:表单字段名与DTO属性名不匹配
你定义的ModelDto中文件列表属性名为Attachments(复数后缀带s):
public IList<IFormFile> Attachments { get; set; }
但你在Postman中提交的表单字段名是Attachment[0](单数无s),ASP.NET Core的[FromForm]模型绑定对属性名是严格匹配的,名称不一致时自然无法完成自动赋值。
2. 额外校验:表单字段格式是否符合要求
IList<IFormFile>类型的属性绑定,只需要满足以下任意一种表单命名规则即可:
- 索引格式:键名按
Attachments[0]、Attachments[1]的规则依次命名,对应索引位置的文件 - 同键名格式:所有上传文件的表单键名都统一设为
Attachments,不需要加索引标识,框架会自动把多个同键名的文件封装为列表
3. 修复操作
直接把Postman中原来的Attachment[0]字段名修改为Attachments[0],重新发起请求即可看到modelDto.Attachments已经能正常拿到绑定的文件。
内容的提问来源于stack exchange,提问作者Spiky
相关产品推荐
相关产品推荐

