问题描述
在创建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 (将#修改为@)