将带有 Ajax 帖子的表单提交到控制器操作

本文关键字:表单提交 控制器 操作 Ajax | 更新日期: 2023-09-27 18:33:48

我正在尝试使用 Ajax 运行一些后台验证,但表单仍然发布到控制器。

表格

<form id="myForm" method="post">
    <input type="hidden" name="username" />
    <input type="hidden" name="password" />
    <input type="submit" value="Submit" />
</form>

脚本

$(document).ready(function () {
    $("#myForm").submit(function (event) {
        event.preventDefault();
        showLoadingWindow(); // Unhides some "Logging in..." div
        $.ajax({
            url: "@actionUrl",
            type: "POST",
            data: $(this).serialize(),
            cache: false,
            done: function () {
                window.location.href(@successUrl);
            },
            fail: function () {
                window.location.href(@errorUrl);
            }
        });
    });
});

我错过了什么?

将带有 Ajax 帖子的表单提交到控制器操作

您可以尝试将 ajax 调用更改为使用成功而不是完成。

success: function(result){
    if(result.Success){
        window.location...
    }else{
        window.location...
    }
}

完全是我之前注释掉.href URL的错,因为问题是我忘记在它们周围加上引号:window.location.href("@errorUrl");是可以修复它的原因,即使控制台在我缺少引号时没有抛出错误。