我尝试使用 IFormFile 和一个字符串向我的 ApiController 发送帖子,但收到 400 错误,当我单独发送文件时,效果很好,但当我想发送字符串时,收到 400 错误 即使我只想发送字符串,我也会收到 400 错误
我的Javascript:
let avatarModel = new FormData();
avatarModel.set("file", blob);
avatarModel.set("productId", productId.value);
var xhr = new XMLHttpRequest();
xhr.responseType = 'json';
xhr.open('POST', '/Api/Admin/UploadProductImageForEdit', true);
xhr.send(avatarModel);
xhr.onreadystatechange = async function () {
if (this.readyState == 4 && this.status == 200) {
}
}
我的 ApiController :
[HttpPost]
[Route("UploadProductImageForEdit")]
[Produces("application/json")]
public IActionResult UploadProductImageForEdit(IFormFile file, string productId)
{
//..//
return Ok();
}
--更新
我发现它说我的productId字段为空,但我不知道为什么,我什至为它添加了手动值
感谢您的宝贵时间
我想使用方法 post 发送一个 IFormFile 和一个字符串到我的 ApiController 并且不会收到 400 错误
好吧,经过一些研究和查看一些项目后,我决定在productId后面添加[FromFile]并且它起作用了,我不知道为什么它可以在没有[FromFile]的情况下接收文件,但不能对productId做同样的事情,但无论如何,
就是这里
[HttpPost]
[Route("UploadProductImageForEdit")]
[Produces("application/json")]
public IActionResult UploadProductImageForEdit(IFormFile file, [FromForm] string productId)
{
...
}