gpt4 book ai didi

asp.net-mvc - 如何防止在表单提交时重定向到新页面

转载 作者:行者123 更新时间:2023-12-05 07:51:12 24 4
gpt4 key购买 nike

我正在尝试将包含多个文件的表单上传到我的服务器,请求将纠正操作,我也得到了一些数据,但所有文件都带有空值。

var file = function(){
this.submitForm = function () {
$("#addBrtForm").ajaxSubmit(function (response) {
if (response === "Barter Uploaded Successfully") {
alert(response);
$.mobile.changePage("#p-afterUpload");
t.somefunction();
} else {
alert("Try Again!! Barter Not Uploaded");
}
});
};
};
hm.files = new file();

//other thing that I tried
$(function(){

$('#addBrtForm').ajaxForm({
type: 'POST',
beforeSubmit: function () {
return false;
},
success: function (response) {
return false;
if (response === "Barter Uploaded Successfully") {

alert(response);
$.mobile.changePage("#p-barter");
t.setBarterpageTitle('My Barter');
} else {
alert("Try Again!! Barter Not Uploaded");
}
}
});
});
 <form method="post" action="http://localhost:xxxx/Mobile/Home/FileUpload" enctype="multipart/form-data" data-ajax="false" id="addBrtForm" name="addBrtForm" >
<input type="text" name="Title" data-role="none" />
<input type="text" name="Description" data-role="none" />
<input type="file" name="files" data-role="none" multiple />
<input type="file" name="files" data-role="none" multiple />
<input type="file" name="files" data-role="none" multiple />
<input type="file" name="files" data-role="none" multiple />
<input type="file" name="files" data-role="none" multiple />
<input type="Submit" name="" value="submit" data-role="none" multiple />
<input type="Button" name="" value="submit" data-role="none" multiple onclick="hm.files.submitForm()"/>
</form>

  • 它在没有“ajaxSubmit”的情况下工作得很好,但页面正在重定向到“http://localhost:xxxx/Mobile/Home/FileUpload”,我不希望出现该页面,我只是想捕获我的回应并根据它做一些事情

我的 Controller

  public ActionResult FileUpload(FormCollection fc, List<HttpPostedFileBase> files)
{
//some functionilty to save data working perfectely

return Json(SuccesMessage, JsonRequestBehavior.AllowGet);
}

*注意 - 因为我使用的是 jquery mobile,所以我的项目中没有 View

最佳答案

感谢在 this post 上接受的答案和 Stephen Muecke建议我研究这个问题。

我做了什么-

  1. 从我的表单标签中删除了 action 属性
  2. 用于点击而不是提交
  3. 使用 ajax 发布引用链接中给出的数据。

我编辑好的js如下图

 var formdata = new FormData($('#addBrtForm').get(0));
$.ajax({
url: "http://localhost:xxxx/Mobile/Home/FileUpload",
type: 'POST',
data: formdata,
processData: false,
contentType: false,
dataType: "json",
success: function (response) {
if (response === "File Uploaded Successfully") {
alert(response);
$.mobile.changePage("#p-afterUpload");
t.someFunction();
} else {
alert("Try Again!! File Not Uploaded");
}
},
error: function (e) {
alert("Network error has occurred please try again!");
}
});

将 Controller 操作更改为此 -

 public ActionResult FileUpload(UploadModel fm, List<HttpPostedFileBase> files)
{
//some functionilty to save data working perfectely

return Json(SuccesMessage, JsonRequestBehavior.AllowGet);
}

- UploadModel 是我的模型,与我在表单中使用的名称相同

关于asp.net-mvc - 如何防止在表单提交时重定向到新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35266405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com