大家好,
我正在尝试将 ViewModel 从 JS 传递到我的 ASP.NET Core Controller ,但遇到错误代码 500。
这是我的代码:
我的 JavaScript
const myFiles = new FormData(); // I supply this myFiles from my append.
// supposed myFiles has already files inside so don't worry about this.
const myInfo = {
Id: 0
Name: "Hello World"
}
const vm = {
MyInfo: myInfo,
MyFiles: myFiles
}
axios.post(`/Info/UploadInfo`,
vm,
{
headers:{
"Content-Type": "multipart/form-data"
}
});
我的 View 模型
public class MyInfoVm{
public MyInfo MyInfo {get;set;}
public IFormCollection MyFiles {get;set;}
}
我的 Controller
public IActionResult UploadInfo(MyInfoVm vm){
return Ok();
}
如果我删除 VM 并仅使用 ViewModel 中的字段之一( IFormCollection 或 MyInfo ),则此方法有效。但问题是,我需要在单个请求中发送多个参数。请问有什么帮助吗?
最佳答案
Javascript
var fileForm = document.createElement('form');
fileForm.enctype = 'multipart/form-data';
var id = document.createElement('input');
id.name = 'id';
id.value = '0';
fileForm.appendChild(id);
var name = document.createElement('input');
name.name = 'id';
name.value = '0';
fileForm.appendChild(name);
var fileInput = document.createElement('input');
fileForm.appendChild(fileInput);
fileInput.id = 'file-input';
fileInput.type = 'file';
fileInput.name = 'file';
var data = new FormData(fileForm);
关于javascript - 带有 IFormCollection 的 ViewModel 无法使用错误 500 - ASP.NET Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49397958/