我遇到了MVC 4中的一个场景,我需要在ajax调用中发送一个图像以及对象列表。我如何在formData中附加它? 这是我的formdata和ajax调用
var formdata = new FormData();
var imgFile = document.getElementById('ProfilePic');
var imgfileList = imgFile.files;
formdata.append(imgfileList[0].name, imgfileList[0]);
// Below Code is not workin
formdata.append('Rent', $scope.RentTypes);
// $scope.RentType = [{ id:1,price:5},{id:2,price:6}]
$.ajax({
url: url
data: formdata,
processData: false,
contentType: false,
type: 'POST'
});
在控制器中,我从ajax调用调用的动作就像这样
public ActionResult Upload(List<Rent> Rent)
{
}
Rent.cs
public class Rent
{
public int id;
public int price;
public Available;
}
答案 0 :(得分:6)
为了回发到集合,您需要使用索引器构建数据,以便它可以被DefaultModelBinder
....
formdata.append('[0].id', 1);
formdata.append('[0].price', 5);
formdata.append('[1].id', 2);
formdata.append('[1].price', 6);
$.ajax({
url: url
data: formdata,
processData: false,
contentType: false,
type: 'POST'
});