【发布时间】:2019-03-09 04:59:34
【问题描述】:
如何将我的文件从我的 javascript(文件通过 react dropzone)发送到我的 asp.net 核心 api?
我正在使用 axios,我有这样的东西
var data = new FormData();
data.append('folderName', "4141515");
data.append('file', files[0].fileObject); //dropzone wraps the fileobject
axiosInstance2.post("/inventories/ImportImage", data)
[HttpPost("ImportImage")]
public async Task<IActionResult> ImportImage(IFormFile file, string folderName){}
这确实有效,但只有“文件”被填充,“文件夹名”变量为空。
我尝试将它放入模型中,但它不起作用(400 状态代码)
public class Test
{
public IFormFile file { get; set; }
public string folderName { get; set; }
}
FormData 也是将其发送到服务器的唯一方法吗?
编辑
看来我需要使用[FromForm] Test test
【问题讨论】:
-
不知道axios专门做什么。但是对于使用 FormData 的普通 jQuery 帖子,您的代码应该可以工作(将填充文件夹名称)
-
你的 asp.net 核心版本是什么?
Controller上有[ApiController]吗?作为我的测试,它与[ApiController]相关,这里有两个选项,一个是删除[ApiController],另一个是添加[FromForm]以指定folderName的绑定源,如ImportImage(IFormFile file, [FromForm]string folderName) -
使用的模型是正确的,我也想确保它走的是正确的路线,是什么导致了 400 代码?
标签: javascript reactjs asp.net-core axios react-dropzone