Logré enviar varios documentos a mi controlador usando la siguiente llamada ajax:
var fileData = new FormData(); for (var i = 0; i < files.length; i++) { fileData.append("UploadDocumentsInput", files[i]); } $.ajax({ type: "POST", url: "/LegalEntity/UploadFiles", async: false, dataType: "json", contentType: false, // Not to set any content header processData: true, // Not to process data data: fileData, success: function (result, status, xhr) { }, error: function (xhr, status, error) { documentSuccess = false; } });y en el controlador, los recibo de esta manera:
[HttpPost] public JsonResult UploadFiles() { var listOfDocs = new List<UploadedFile>(); HttpFileCollectionBase files = Request.Files; for (int i = 0; i < files.Count; i++) { HttpPostedFileBase file = files[i]; var inputStream = file.InputStream; var inputStreamLength = Convert.ToInt32(inputStream.Length); byte[] streamArray = new byte[inputStreamLength]; var strRead = inputStream.Read(streamArray, 0, inputStreamLength); var docObject = new UploadedFile() { Attachment = streamArray, FileName = file.FileName, }; listOfDocs.Add(docObject); } _personService.SaveDocs(listOfDocs); return Json(files.Count + " Files Uploaded!"); } Pero también, necesitaré enviar desde mi vista una identificación. Intenté incluirlo en el campo data: y recibirlo como argumento en mi método, pero esto no parece estar funcionando.
Toda ayuda será muy apreciada.