【发布时间】:2021-09-03 15:12:49
【问题描述】:
调试请求文件时得到空值。这是我的代码:
我的控制器:
[ProducesResponseType(type: typeof(ReturnDigitalClaimVm), statusCode: StatusCodes.Status200OK)]
[HttpPost(template: "createclaim")]
public async Task<IActionResult> CreateClaimDC(
[FromBody] CreateClaimCommand reqdata,
[FromForm] IEnumerable<IFormFile> files)
{
var command = new ClaimCommand()
{
CommandBody = reqdata,
Files = files
};
return Wrapper(val: await Mediator.Send(request: command));
}
我的模型:
public class ReturnDigitalClaimVm
{
public string DocId { get; set; }
}
public class ClaimCommand : IRequest<ReturnDigitalClaimVm>
{
public CreateClaimCommand CommandBody { get; set; }
public IEnumerable<IFormFile> Files { get; set; }
}
public class CreateClaimCommand
{
public string AWB { get; set; }
}
我的命令处理程序:
public class CreateClaimCommandHandler : IRequestHandler<ClaimCommand, ReturnDigitalClaimVm>
{
public async Task<ReturnDigitalClaimVm> Handle(ClaimCommand request, CancellationToken cancellationToken)
{
var checkReqBody = request.CommandBody.AWB;
var checkReqFiles = request.Files; //--> I debug my code here
return new ReturnDigitalClaimVm
{
DocId = "XXX-123"
};
}
}
我的调试:
当我在 var checkReqBody 的 CommandHandler 中调试我的代码时,我得到了值“test”,但在“var checkReqFiles”我得到了 null 值,即使我已经把两个文件形成了招摇。我尝试在控制器和模型中将IEnumerable<IFormFile> files 更改为List<IFormFile> files,但我得到了相同的结果。谁能帮帮我?
【问题讨论】:
-
在控制器中,文件有值吗?
-
在控制器中,文件为空
-
那你的问题不是MediatR。检查建议的解决方案。
标签: c# asp.net-core file-upload mediatr