使用 Ajax 提交时,表单未在控制器中执行操作
Form not hitting action in controller when submitted with Ajax
我已经查看了有关如何编写代码的其他相关帖子,但我仍然无法使其正常工作
我正在尝试使用 Ajax 提交表单,但是当单击按钮时,控制器中的操作从未被触发。
$('#sendCodeForm').submit(function (e) {
var form = $('sendCodeForm')[0];
var formData = new FormData(form);
if ($(this).valid()) {
e.preventDefault();
$.ajax({
url: '@Url.Action("SendResetCode", "Home")',
type: 'post',
cache: false,
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if (data.status == "success") {
$("#successMessage").append('Reset code has been sent to');
}
}
});
}
});
<form id="sendCodeForm">
<label for="email">EMAIL ADDRESS</label>
<input asp-for="username" id="username" type="email" placeholder="your@email.com" /><br>
<button type="submit" id="sendCodeBtn">Send Code</button>
</form>
我最初使用 Ajax 标签助手创建表单,如下所示,但由于现在能够停止表单,所以不得不改为在 javascript 中使用 Ajax重定向
<form asp-controller="" asp-action="" method="post" data-ajax="true" data-
ajax-method="post" data-ajax-complete="completed">
您可以尝试如下更改代码:
$('#sendCodeForm').submit( function (e) {
e.preventDefault();
var formData = new FormData($('#sendCodeForm')[0]);
$.ajax({
url: '@Url.Action("SendResetCode", "Home")',
type: 'post',
cache: false,
processData: false,
contentType: false,
data: formData,
success: function (data) {
if (data.status == "success") {
$("#successMessage").append('Reset code has been sent to');
}
}
});
});
结果:
我已经查看了有关如何编写代码的其他相关帖子,但我仍然无法使其正常工作
我正在尝试使用 Ajax 提交表单,但是当单击按钮时,控制器中的操作从未被触发。
$('#sendCodeForm').submit(function (e) {
var form = $('sendCodeForm')[0];
var formData = new FormData(form);
if ($(this).valid()) {
e.preventDefault();
$.ajax({
url: '@Url.Action("SendResetCode", "Home")',
type: 'post',
cache: false,
processData: false,
contentType: false,
data: formdata,
success: function (data) {
if (data.status == "success") {
$("#successMessage").append('Reset code has been sent to');
}
}
});
}
});
<form id="sendCodeForm">
<label for="email">EMAIL ADDRESS</label>
<input asp-for="username" id="username" type="email" placeholder="your@email.com" /><br>
<button type="submit" id="sendCodeBtn">Send Code</button>
</form>
我最初使用 Ajax 标签助手创建表单,如下所示,但由于现在能够停止表单,所以不得不改为在 javascript 中使用 Ajax重定向
<form asp-controller="" asp-action="" method="post" data-ajax="true" data-
ajax-method="post" data-ajax-complete="completed">
您可以尝试如下更改代码:
$('#sendCodeForm').submit( function (e) {
e.preventDefault();
var formData = new FormData($('#sendCodeForm')[0]);
$.ajax({
url: '@Url.Action("SendResetCode", "Home")',
type: 'post',
cache: false,
processData: false,
contentType: false,
data: formData,
success: function (data) {
if (data.status == "success") {
$("#successMessage").append('Reset code has been sent to');
}
}
});
});
结果: