我想创建一个上载文件的方法+将class \ struct的实例作为附加参数。
// Works
[HttpPost("test_1")]
public async Task<IActionResult> Test1(IFormFile file) { return Ok(); }
public struct MyModel
{
public int Value1 { get; set; }
public int Value2 { get; set; }
}
// Doesn't work
[HttpPost("test_2")]
public async Task<IActionResult> Test2(IFormFile file, MyModel model) { return Ok(); }
呼叫test_2
会产生以下结果:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
"title": "Unsupported Media Type",
"status": 415,
"traceId": "8000000c-0007-fd00-b63f-84710c7967bb"
}
如何修改test_2
方法以产生所需的结果?
答案 0 :(得分:4)
因为您的请求包含多个部分(文件和可选数据)。
因此,将其更改为表单数据,就可以通过Api上的 [FromForm] 来获取它们。
试试这个
public struct MyModel
{
public int Value1 { get; set; }
public int Value2 { get; set; }
public IFormFile Files { get; set; }
}
[HttpPost("test_2")]
public async Task<IActionResult> Test2([FromForm]MyModel model) { return Ok(); }
希望有帮助