Ajax回调,带有为MVC5模型创建的嵌套FormData对象

问题描述

在创建Formdata()对象时,我总是面对null模型。 这是我经过测试的代码,如下所示:

var finalFormObj = new FormData();

这是用于我已附加到上述finalFormObj中的个人表单数据。

var personalFormObj = new FormData();
personalFormObj.append('FName',$('#firstName').val());
personalFormObj.append('MName',$('#middleName').val());
personalFormObj.append('LName',$('#lastName').val());
personalFormObj.append('MailPersonal',$('#emailAddress').val());
personalFormObj.append('PersonalMobile',$('#PersonalMobile  ').val());    

这是用于照片上传的formdata()对象,我也已将其附加到finalFormObj中。

var photoFormObj = new FormData();
photoFormObj.append('PhotoUrl',$('#btnuploadPersonPhoto').get(0).files.length !== 0
    ? $('#btnuploadPersonPhoto').get(0).files[0].name : '');
            photoFormObj.append('FileBase',$('#btnuploadPersonPhoto').get(0).files.length !== 0
                ? $('#btnuploadPersonPhoto').get(0).files[0]
                : '');

下面根据我的模型给出了最终的formdata对象。

finalFormObj.append('PersonalInfo',personalFormObj);
finalFormObj.append('PhotoInfo',photoFormObj);

ajax发布代码作为我最终的finalFormObj给出:

$.ajax({
    data: finalFormObj,type: 'POST',url: url,async: true,//contentType: "application/json",contentType: false,processData:false,cache:false,//dataType: 'json',success: function (data) {
        alert('success');           
    },error: function (request,status,error) {
        alert("Error Details-  Request: " + request + " Status: " + status + " Error: " + error);
    }
});

我的c#模型如下所示,根据我尝试使用formData()发布的模型,我给出的模型如下:

这是针对父类模型的,该模型有两个属性类,分别称为personal和photo,它们具有某些属性。

public class EmployeeModelDto
{
    public PersonalDto PersonalInfo { get; set; }
    public PhotoDto PhotoInfo { get; set; }
}

个人和照片课在下面给出。 公共类PersonalDto {

    public string FName { get; set; }
    public string MName { get; set; }
    public string LName { get; set; }
    public string MailPersonal { get; set; }
    public string PersonalMobile { get; set; }
 }
public class PhotoDto
{
    public string PhotoUrl { get; set; }
    public HttpPostedFileBase FileBase { get; set; }
}

当我尝试从下面给出的ajax中发布数据时,我的控制器EmployeeModelDto始终为null。

[HttpPost]
    public ActionResult InsertEmployee(EmployeeModelDto model)
    {
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)