我想要实现的是将一个文件追加到一个帖子请求,这是我从一个带有javascript的拖放字段获得的.问题是,我不想读取所有输入字段并通过ajax调用发布数据,我想使用默认的提交方法@HTML.BeginForm.当我这样做时,multipart并不真正包含该文件.
(注意:当我提交文件或手动读取所有输入字段并使用单独的ajax提交时,它可以正常工作.)
我的代码:拖放js:
var file;
var isDragged = false;
var formData;
function dropHandler(ev) {
isDragged = true;
ev.preventDefault();
// Use DataTransfer interface to access the file(s)
for (var i = 0; i < ev.dataTransfer.files.length; i++) {
file = ev.dataTransfer.files[i];
formData = new FormData($("#form"));
formData.append("File.PayLoad", file);
formData.append("File.FileMetadataId", $('#File_FileMetadataId').val())
formData.append("File.FileObjectId", $('#File_FileObjectId').val())
}
}
Run Code Online (Sandbox Code Playgroud)
HTML:
@using (Html.BeginForm("Edit", "DocumentTemplates", FormMethod.Post, new { role = "form", enctype = "multipart/form-data", id = "form" }))
{
@Html.AntiForgeryToken()
<div class="row">
<div class="col-xs-4">
@Html.LabelFor(model => …Run Code Online (Sandbox Code Playgroud)