我有一个很长的表格,其中包含文件附件:
这就是我的表格的样子:
表单将提交至此操作:
[HttpPost]
public ActionResult AddReceivingConfirm(DTOreceiving entry,IEnumerable<HttpPostedFileBase> fileUpload)
{
return PartialView();
}
通过ajax调用,即:
$(document).on('click', 'input[type="submit"].genericSubmit', function () { //generic function for ajax submit of ANY FORMS t
if (!$("form#ValidateForm").valid()) {
return false;
};
var frmData = $('.genericForm').serialize();
var frmUrl = $('.genericForm').attr('action');
$.ajax({
type: 'post',
url: frmUrl,
data: frmData,
success: function (e) {
$('#target').html(e);
}
});
return false;
});
一切都完美结合,除了IEnumerable<HttpPostedFileBase>
这总是导致null
,
我的表单的文件部分是这样完成的:
<tr>
<td>Attachment #1: </td>
<td colspan="3">
<input id="file1" type="file" name="fileUpload" />
</td>
</tr>
<tr>
<td>Attachment #2: </td>
<td colspan="3">
<input id="file2" type="file" name="fileUpload" />
</td>
</tr>
<tr>
<td>Attachment #3: </td>
<td colspan="3">
<input id="file3 "type="file" name="fileUpload" />
</td>
</tr>
我已经尝试过括号版本等,但它不会绑定。
经过一个小时的研究,我了解到不可能(?)通过使用 Ajax 传统地进行文件发布,除非使用 iframe。我不确定我的行动会是什么,我有点想避免使用插件,所以我想知道是否有一些“hacky”方法可以直接从我的表单访问文件?
这是我的表格:
using (Html.BeginForm("AddReceivingConfirm", "Wms", FormMethod.Post, new { id = "ValidateForm", @class = "genericForm" , enctype="multipart/form-data"}))