繁体   English   中英

如何防止ajaxSubmit中的“ return false;”与ASP.NET MVC RedirectToAction冲突

[英]How do I prevent “return false;” in ajaxSubmit from conflicting with ASP.NET MVC RedirectToAction

我一定想念一些明显的东西...

我有一个正常工作的标准ASP.NET MVC3登录操作。 如果用户/密码匹配,则FormsAuthentication会执行其SetCookie例程并按预期方式执行RedirecToAction,否则它将返回设置模型状态错误,并将模型返回到视图。 因此,这在禁用Javascript的情况下有效。

我现在正在尝试添加jQuery.Form插件来执行ajaxSubmit,如果用户不使用匹配的用户/密码组合,则会显示错误。

$(document).ready(function () {
        var options = {
            success: showResponse
        };

        $('#formLogon').submit(function () {
            $(this).ajaxSubmit(options);
            // return false;
        });

        function showResponse() {
            $("#loginError").show();                             
        }
    });

我的问题是,如果我取消注释“ return false”; 在ajaxSubmit之后,调用showResponse函数时,错误div会正确显示。 但是,如果提交了正确的用户名/密码,则用户将永远不会重定向,因为重定向被拦截了(但是我已经在Fiddler中看到了GET调用,所以我知道重定向正在发出请求)。

我尝试将“ return false”返回; 进入showResponse函数,但不起作用,在ajaxSubmit之后没有返回false的情况下,MVC重定向会在回调之前启动,并且永远不会显示错误div。

这不是我要尝试执行的正确方法吗?

您应该尝试研究jQuery的$ .ajax函数。 使用此功能,您可以定义回调。

应该发生以下情况:提交时始终返回false当用户输入登录名时,发出ajax请求。 如果用户输入正确的登录名,则删除提交功能,并使用$(this).submit进行提交。 (使用$ .ajax的回调),然后将return false返回。

这是一个肮脏的修复程序,但我认为它将起作用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM