当我想使用 ApiController Asp.Net Core 发布文件和字符串时出现 400 错误

问题描述 投票:0回答:1

我尝试使用 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();

    }

enter image description here

--更新

我发现它说我的productId字段为空,但我不知道为什么,我什至为它添加了手动值

enter image description here enter image description here enter image description here

感谢您的宝贵时间

我想使用方法 post 发送一个 IFormFile 和一个字符串到我的 ApiController 并且不会收到 400 错误

javascript c# asp.net-core asp.net-apicontroller
1个回答
0
投票

好吧,经过一些研究和查看一些项目后,我决定在productId后面添加[FromFile]并且它起作用了,我不知道为什么它可以在没有[FromFile]的情况下接收文件,但不能对productId做同样的事情,但无论如何,

就是这里

[HttpPost]
    [Route("UploadProductImageForEdit")]
    [Produces("application/json")]
    public IActionResult UploadProductImageForEdit(IFormFile file, [FromForm] string productId)
    {
        ...
    }
© www.soinside.com 2019 - 2024. All rights reserved.