由于客户端,我们的API应该替换其他API,而无需进行很多更改,但是以前的API会以某种形式接收数据,而我无法在.net core中进行复制。在这种情况下,ModelState毕竟无效。
请参阅客户要求。
我们正在使用.net core 2.0 mvc
我已经尝试将主体作为IFormFile接受,但是由于application / json内容类型而没有成功。我也尝试将body作为FromForm属性参数,但也没有成功。
我的控制器:
[Consumes("application/json")]
[HttpPost("product/set")]
public async Task<IActionResult> CreateProduct([FromBody]IEnumerable<CreateProductInput> input)
{
// Some code and returns.
}
CreateProductInput:
public class CreateProductInput
{
[Required]
[StringLength(20, ErrorMessage = "{0} cannot exceed {1} characters")]
public string id { get; set; }
[StringLength(20, ErrorMessage = "{0} cannot exceed {1} characters")]
public string name { get; set; }
}
但是客户请求看起来像这样:
标题:
Content-Type: application/json; charset=UTF-8; boundary=--------------------------xxxxxxxxxxxxxxx
Content-Length: 1931
身体
: --------------------------xxxxxxxxxxxxxxx
Content-Disposition: attachment; name="data_file"
[
{
"id": "A1",
"name": "AAA",
}, {
"id": "A2",
"name": "BBB",
}, {
"id": "A3",
"name": "CCC",
}
]
--------------------------xxxxxxxxxxxxxxx--
是否可以使用application/json
内容类型以及如何接收这种json附件?