使用mvc中的jquery ajax上传文件和发布表单数据

时间:2015-04-01 09:30:48

标签: jquery ajax asp.net-mvc file-upload

我有一个包含一些输入字段和文件上传的表单。

<form id="documentUploadForm"  method="post" enctype="multipart/form-data">
   <input type="text" id="name"></input>
   <input type="radio" id="type1"></input>
   <input type="radio" id="type2"></input>
   <input type="date" id="date"></input>
   <input type="file" id="documentToUpload"></input>
   <input type="submit" id="Save" value="Upload"></input>
</form>

我需要将表单和上传的文件一起发布到我的控制器操作中。下面是我的jquery脚本。

$('#Save').click(function(){   
var formData = new FormData();
var file = $('#documentToUpload').get(0).files[0];
if (file.length > 0) {
    formData.append("File", file, 'document');
}
var data = $('#documentUploadForm').serialize();
formData.append("Form", data);
$.ajax({
    type: 'Post',
    url: url,
    data: formData,
    dataType: 'json',
    processData: false,
    contentType: false, 
    success: function (response) {
        //do something
    },
    error: function (jqXHR, textStatus, errorThrown) {
        alert("Fail!");
    }
});
})

但这似乎不起作用。发布到我的控制器的表单集合始终为空。

[HttpPost]
public JsonResult Upload(FormCollection form)
{
}

如何发布表单和上传的文件并以我的操作方法接收?

0 个答案:

没有答案