javascript - 带有 IFormCollection 的 ViewModel 无法使用错误 500 - ASP.NET Core

标签 javascript c# asp.net-mvc viewmodel asp.net-core-2.0

大家好,

我正在尝试将 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/

相关文章:

c# - 我应该创建什么而不是 Bootstrap ? Prism 6.1.0

c# - 删除行时数据表/数据源自动增量列同步的棘手错误

c# - 如何在 C# 中使用 DateTime.Now.Ticks 保持精度

javascript - 无法清除下拉菜单的文本

javascript - Jquery - 解析从 URL 接收到的 XML

javascript - React Hook "useSelector"在函数中被调用

asp.net-mvc - 如何配置teamcity构建asp.net mvc web项目的部署包并放入指定目录

asp.net-mvc - Razor - 如何在使用 @{} 或 @() 时防止 View 源中不必要的换行?

javascript - 如果 CMS 的复选框为 true,则切换文本框

javascript - 检测 URL 中的后退按钮/哈希更改