小编Gwn*_*wny的帖子

使用formdata追加@ HTML.BeginForm而不调用ajax

我想要实现的是将一个文件追加到一个帖子请求,这是我从一个带有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)

javascript forms asp.net asp.net-mvc jquery

11
推荐指数
1
解决办法
434
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

forms ×1

javascript ×1

jquery ×1