我正在使用名为“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>
Controller处理程序:
<HttpPost()> _
Function Document(ByVal model As MaxDocument, fileInput As HttpPostedFileBase) As ActionResult
...
End Function
答案 0 :(得分:0)
尝试preventDefault
<script>
$(document).on("pageshow", '#choosenewdocument', function () {
$("#submitimage-form").ajaxForm({
beforeSubmit: function() {
return false;
}
});
});
</script>
preventDefault
(顾名思义)可以防止发生默认操作。
答案 1 :(得分:0)
因此,为了防止在使用jquery ajax时双重提交,只需将其放在表单中
action="javascript:null();"