gpt4 book ai didi

javascript - "return false"不停止回发到 Controller

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

我有一个 MVC5 View ,在这个 View 中我有:

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post))
{
// My controls
<input type="submit" id="btnSubmit" class="btn btn-primary" value="Submit" />
}

我想要的是在发布到 Controller 之前进行 ajax 调用检查记录计数。

如果记录数很高,我想留在 View 上并提示用户。

一切似乎都正常,但 View 仍在发布到 MyAction。我本来期望“返回 false;”为了防止这种情况发生。

为什么“return false”没有停止向 Controller 发送消息?

$("#btnSubmit").click(function (e) {

var p1= $("#Value1").val();
var p2= $("#Value2").val();

$.ajax({
type: "GET",
url: "/MyController/GetRecordCount",
data: { "param1": p1, "param2": p2 },
async: false
}).done(function (recCount) {
if (recCount> 999)
{
$(".showAdditionalInfo").show();
return false;
}
}).fail(function (xhr, status, err) {
alert(xhr.responseText);
});
});

最佳答案

您的返回应该在点击处理程序本身内。现在它位于 AJAX 回调内部。

应该是这样的:

$("#btnSubmit").click(function (e) {
e.preventDefault();
var p1= $("#Value1").val();
var p2= $("#Value2").val();
var doPost = true;


$.ajax({
type: "GET",
url: "/MyController/GetRecordCount",
data: { "param1": p1, "param2": p2 },
async: false
}).done(function (recCount) {
if (recCount> 999)
{
$(".showAdditionalInfo").show();
doPost = false;
}
}).fail(function (xhr, status, err) {
alert(xhr.responseText);
});

return doPost;
});

这假设 ajax 请求不是异步的。一旦是这样,这就不应该再起作用了。

关于javascript - "return false"不停止回发到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496147/

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