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

标签 javascript asp.net-mvc

我有一个 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/

相关文章:

c# - 如何以 Razor 语法对 View 模型项进行排序

C# Web 应用程序 -> 代理所有请求 -> 从另一个 Web 应用程序返回内容(反向代理)

javascript - 当 contenteditable div 包含文本时如何删除标签?

javascript - AngularJS 并通过函数返回 javascript 数组中的对象

asp.net-mvc - 带有 SelectList 设计决策的 ViewModels

asp.net-mvc - 只允许从特定的电子邮件域注册

asp.net-mvc - 将 ASP.MVC 3 应用程序部署到子文件夹(而不是根文件夹)时,如何处理路由?

javascript - 我可以控制 CKEditor 在何处找到要加载的插件吗?

javascript - .appendChild() 是否会终止 child 与其当前 parent 之间的亲子关系?

javascript - 使用 Peerjs 和 Turnserver 进行流式传输