【发布时间】:2019-10-17 11:45:22
【问题描述】:
我有一个现有的 API,它正在从请求正文中读取数据:
[HttpPost]
public async Task<IActionResult> Post([FromBody] CreateVm vm)
{
if (!ModelState.IsValid) return BadRequest();
var result = await _service.CreateAsync(vm);
return Ok(result);
}
出现了一个新要求,要求客户端希望将图像与视图模型一起提交。我的第一个想法是在请求中附加一个IFormFile,在不同的服务中处理它并继续:
public async Task<IActionResult> Post([FromBody] CreateVm vm, IFormFile file) { /* ... */}
这种方法的结果是,我得到了状态码 415“不支持的媒体类型”。
使用邮递员,我尝试将 Content-Type 设置为 multipart/form-data,但无济于事。
这种方法是否可行,还是我需要在视图模型中添加byte[] 属性并从那里解析图像?
【问题讨论】:
-
你应该先问“如何使用相同的表单发布数据和文件”?您不能再将整个正文传递给一个参数。
-
您的表单或邮递员帖子是什么样的?
标签: c# asp.net-core asp.net-core-2.2