I have a simple model:
public class MyModel {
   public string Description { get; set; }
   public HttpPostedFileBase File {get; set; }
}
and my MVC action:
[HttpPost]
public ActionResult Upload(List<MyModel> data) {
   // do soemthing
}
and finally JavaScript:
$("#chooseFile").on("change", function (){
    var files = $(this).prop("files");
    var array = [];    
   for(int i=0; i<files.length; i++) {
      var obj = {};
      obj.Description = "My custom description" + i;
      obj.File = files[i];
      array.push(obj);
   }
   var formData = new FormData();
   formData.append("data", array);
   var xmlHttpRequest = new XMLHttpRequest();
   xmlHttpRequest.open("POST", "/test/Upload");
   xmlHttpRequest.send(formData);
});
The problem is that data from the Upload action always has Count = 0 . Where is my mistake ?