0

我正在使用名为“jquery.form.js”(http://malsup.com/jquery/form/#getting-started)的 jquery 插件,以便能够在我的 ASP.Net MVC 项目中使用 Ajax 上传文件。我遇到的问题是,当我按下表单中的提交按钮时,处理上传的控制器操作被调用了两次。第一次调用 HttpPostedFileBase 对象时正确设置了上传的文件。第二次调用 HttpPostedFileBase 对象被设置为 Nothing。我不希望处理程序被调用两次。如何防止重复发布?

风景:

@Using Html.BeginForm("Document", "NewDocument", Model, FormMethod.Post, New With {.enctype = "multipart/form-data", .id = "submitimage-form"})
 <input type="file" id="fileInput" name="fileInput" />
 <input type="submit" id="submitbutton" value="Accept" data-mini="true" data-theme="b" data-icon="check" />

End Using

<script src="~/Scripts/jquery.form.js"></script>
<script>
$(document).on("pageshow", '#choosenewdocument', function () {
      $("#submitimage-form").ajaxForm(function () {
      });
  });
</script>

控制器处理程序:

<HttpPost()> _
Function Document(ByVal model As MaxDocument, fileInput As HttpPostedFileBase) As ActionResult
     ...
End Function
4

2 回答 2

0

尝试preventDefault

<script>
$(document).on("pageshow", '#choosenewdocument', function () {
      $("#submitimage-form").ajaxForm({
         beforeSubmit: function() {
           return false;
         }
      });

  });
</script>

preventDefault(顾名思义)防止发生默认操作。

于 2013-10-16T17:03:19.597 回答
0

因此,为了防止在使用 jquery ajax 时重复提交,只需将其放入您的表单中

action="javascript:null();"

于 2013-11-05T22:56:33.263 回答