【问题标题】:How to bind multiple file uploads with model in web api?如何在 web api 中将多个文件上传与模型绑定?
【发布时间】:2021-12-28 17:32:21
【问题描述】:

我看不到这里缺少什么。

我有一个看起来像这样的模型:

public class ModelDto
{
    public string X { get; set; }
    // ...
    public IList<IFormFile> Attachments { get; set; }
}

它用于 Web Api 中的 POST 端点,如下所示:

[HttpPost()]
public async Task<ActionResult<ResponseModel>> PostEndpoint([FromForm] ModelDto modelDto)
{
    // ...
}

当我使用 Postman、Form-Data 和字段(包括 Attachment[0] 作为文件)进行 POST 时,我收到了一个模型,其中包含所有其他字段,但没有任何文件。但我确实收到了请求中的文件。如果我查看 this.Request.Form.Files,它就在那里,但它没有作为模型的一部分加载。

因此,很明显,我可以手动将文件列表重新附加到模型的适当部分。但是为什么绑定不起作用?

谢谢

【问题讨论】:

    标签: .net-core postman asp.net-core-webapi


    【解决方案1】:

    嗯,我终于明白了,所以问题在于我如何编写请求的邮递员方面。

    对于文本键数组,使用[] 表示法。它不能用于文件数组。

    因此,我不必发送Attachments[0]Attachments[],而只需发送Attachments 作为每个文件的密钥。然后绑定工作正常。

    【讨论】:

      猜你喜欢
      • 2012-04-25
      • 2021-08-09
      • 1970-01-01
      • 2021-06-30
      • 2012-09-17
      • 2016-07-02
      • 2016-09-16
      • 1970-01-01
      • 2021-07-30
      相关资源
      最近更新 更多