【发布时间】:2020-05-05 11:00:50
【问题描述】:
我在 REACT 中有以下内容:
let form = new FormData();
form.append("test",test);
for (var index = 0; index < files.length; index++) {
var element = files[index];
form.append('file', element);
}
axios.post('https://localhost:44371/api/default', form,'sdfdsf')
.then((result) => {
console.log(result);
})
.catch((ex) => {
console.error(ex);
});
这在 asp.net core web api 中:
[HttpPost]
public void Post(IFormCollection form,string test2)
{
var test = form["test"];
foreach (var file in form.Files)
{
UploadFile(file);
}
}
它按预期工作。我可以将键作为字符串添加到表单中并在 API 中提取它们。但是无论如何要通过表单传递复杂类型吗?如果我将对象作为参数附加到 API 函数上,则最佳选择。或者它是一个限制,当发布一个你可以发布的表单时?p>
【问题讨论】:
-
普通形式的帖子基于
application/x-www-form-urlencoded,所以它只是一个键值对列表。虽然可以使用标准 ASP.NET Core 模型绑定器以这种方式具有某种层次结构,但您应该发布一个序列化的主体,例如改用 JSON。
标签: reactjs asp.net-core-webapi