如何通过 Swagger UI 通过 ASP.net C# 控制器上传小文件?

How to upload a small file through an ASP.net C# controller through a Swagger UI?

我正在尝试实现一个控制器来通过 IFormFile 上传一个小文件。当我只有 IFormFile 和字符串作为参数时,它可以工作(参见图像 #2)。当我添加一个命令时 object 它没有(见图 #1)。

    [HttpPost()]
    public async Task<IActionResult> Upload(IFormFile file, string fileName, AddResumeCommand command)
    {
        return Accepted();
    }

我正在使用 Swashbuckle.AspNetCore 版本 5.6.3。

Swagger UI 看起来像这样:

现在以下工作:

    [HttpPost()]
    public async Task<IActionResult> Upload(IFormFile file, string fileName)
    {
        return Accepted();
    }

Swagger UI 是:

我希望第一个屏幕看起来像第二个屏幕,其中有“文件选择”。

答案是用 [Consumes("multipart/form-data")] 注释我的控制器以及以下函数定义:

        public async Task<IActionResult> Upload([FromForm] AddResumeFileCommand fileCommand) { }

其中 AddResumeFileCommand 是:

public class AddResumeFileCommand
{
    public string FileName { get; set; }

    public IFormFile FormFile { get; set; }

    public AddResumeFileCommand( string fileName, IFormFile formFile)
    {
        FileName = fileName;
        FormFile = formFile;
    }
}