我有一个包含一些输入字段和文件上传的表单。
<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)
{
}
如何发布表单和上传的文件并以我的操作方法接收?