即使ContentType为false,文件对象也被设置为字符串

时间:2019-05-27 13:50:21

标签: c# jquery ajax asp.net-mvc post

我正在尝试将File对象传递给控制器​​HttpPostedFileBase变量,但是无法正确绑定它。

JavaScript ajax调用:

var formData = new FormData();

var _documents = [];

for (var i = 0; i < arrayOfFiles.length; i++) {
    var document = {
        File: arrayOfFiles[i].file,
        DocumentId: arrayOfFiles[i].documentId,
        DocumentType: arrayOfFiles[i].documentName
    };

    _documents.push(document);
    formData.append("file", document.File);
    formData.append("id", 146);
}

jQuery.ajaxSettings.traditional = true;
$.ajax({
    async: false,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    url:  '@Url.Action("UploadFile", "Home")',
    data: formData
});

MVC控制器:

[HttpPost]
[ActionName("UploadFile")]
public ActionResult UploadFile(IEnumerable<int> id, IEnumerable<HttpPostedFileBase> file)
{
    var aa = Request.Form.Get("file");
    return View();
}

aa得到一个字符串“ [object Object]”,id得到一个包含146的列表,而file得到一个空数组。

如何正确发送File对象,使其与file绑定?

0 个答案:

没有答案