如何解决复杂类型数组的 OpenApi 3 多部分表单请求
我创建了一个新的 Asp.Net Core 5.0 Web API 项目,并尝试将文件与其他属性一起上传。其中一个属性是我定义的其他元素的列表。数据模型如下所示:
public class Person
{
public string Surname { get; set; }
public string FamilyName { get; set; }
public IFormFile Image { get; set; }
public List<Item> Items { get; set; } = new List<Item>();
}
public class Item
{
public string Value { get; set; }
public string Description { get; set; }
}
似乎 swagger 文档生成了具有适当 UI 的适当文件。不幸的是,我不知道数据必须是哪种格式,以便 ASP.NET Core 模型绑定器将其转换为有效模型。我试图将一些 json 对象插入到“项目”框中,但我的列表始终为空。
控制器动作非常标准:
[HttpPost]
public ActionResult Post([FromForm] Person p)
{
if (ModelState.IsValid)
{
return Ok();
}
return BadRequest();
}
解决方法
到目前为止,我还没有找到一个简洁的解决方案,但我编写了一个自定义模型绑定器,如此处所述。所以基本上请求有两个部分。一个包含文件,一个包含整个 JSON 数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。