Javascript 淘汰:绑定上传的文件

Javascript 淘汰:绑定上传的文件,javascript,jquery,asp.net-mvc,knockout.js,Javascript,Jquery,Asp.net Mvc,Knockout.js,我遇到了一个问题,即无法从主淘汰视图模型中的嵌套模型上载多个文件 通过测试上载HttpPostedFileBase属性,我成功地上载了一个文件,并使用XmlFile属性在EditTestStepjs文件中使用了两个同步ajax调用 但是,在尝试发送绑定到列表中嵌套模型的多个文件时,我无法使用表单数据将其值发送到控制器 嵌套视图模型 public class XmlParameterViewModel { public string ParameterName { get; set; }

我遇到了一个问题,即无法从主淘汰视图模型中的嵌套模型上载多个文件

通过测试上载HttpPostedFileBase属性,我成功地上载了一个文件,并使用XmlFile属性在EditTestStepjs文件中使用了两个同步ajax调用

但是,在尝试发送绑定到列表中嵌套模型的多个文件时,我无法使用表单数据将其值发送到控制器

嵌套视图模型

public class XmlParameterViewModel
{
    public string ParameterName { get; set; }
    public HttpPostedFileBase XmlValue { get; set; }
}
public class EditTestStepViewModel
{
    public string TestStepName { get; set; }
    public HttpPostedFileBase XmlFile { get; set; }
    public List<XmlParameterViewModel> XmlParameters { get; set; }

    public EditTestStepViewModel()
    {
        this.XmlParameters = new List<XmlParameterViewModel>();
    }

}
主视图模型

public class XmlParameterViewModel
{
    public string ParameterName { get; set; }
    public HttpPostedFileBase XmlValue { get; set; }
}
public class EditTestStepViewModel
{
    public string TestStepName { get; set; }
    public HttpPostedFileBase XmlFile { get; set; }
    public List<XmlParameterViewModel> XmlParameters { get; set; }

    public EditTestStepViewModel()
    {
        this.XmlParameters = new List<XmlParameterViewModel>();
    }

}
看法


XmlPara
保存测试步骤

您可以通过浏览器发布实际请求吗?我怀疑您的html输入名称没有正确映射到您的属性
公共列表XmlParameters{get;set;}
<form enctype="multipart/form-data" id="editForm">

 <table class="table table-striped">
        <tr>
            <th>XmlPara</th>
        </tr>

        <tbody data-bind="foreach: XmlParameters">
        <tr>
            <td class="form-group"> <input name="ParameterName" class="form-control input-sm" data-bind="value: ParameterName"  disabled="disabled"/></td>
            <td class="form-group"> <input name="XmlValue" type="file" class="btn btn-group" data-bind="value: XmlValue" /></td>
        </tr>
        </tbody>

    </table>
        <button data-bind="click: saveTestStep" type="submit">Save Test Step</button>

<form>