使用Ajax方法成功执行一些操作

时间:2014-05-13 06:03:32

标签: jquery ajax asp.net-mvc

我有Jquery Ajax方法来调用MVC控制器动作。使用此方法中的返回值,我想用if条件执行一些操作。此方法在保存按钮单击中调用。如果返回true我想要返回保存操作,如果返回false我想显示验证。

这是我的Ajax方法:

   $(function () {
    $('#saveRefund').on('click', function (event) {
        event.preventDefault();
        var userName = $('#userName').val();
        var password = $('#Password').val();

        var sucess = setRefundformValidation()
        if (sucess) {
            $.ajax({
                type: 'POST',
                url: '/Service/Utility/IsLoginSucess',
                data: { userName: userName, password: password },
                success: function (data) {
                    debugger;
                    if (data == 0) {
                        $('#loginVal_').show();
                        return false;
                    }
                    else {
                        $('#loginVal_').hide();
                        return true;
                    }

                }
            });
        }
        else
        { return false; }

    });
});

考虑这个功能 if(data == 0)显示验证,

if(data!= 0)返回表单操作

如果返回true,则不会重定向到控制器中的SAVE操作

请帮助

1 个答案:

答案 0 :(得分:3)

因为ajax是异步的,所以返回true / return false将不会对ajax调用起作用,并且每次都会返回false。

Asyncronous意味着它不会等待成功结果,并且会直接通过它在整个ajax调用之后直接处理代码,这意味着每次都会返回返回false的默认值。当您的成功返回true时,该函数已经返回false以防止进一步的操作。

如果为true,则应该调用函数来执行您想要执行的操作,而不是返回false,如果为false,则应再次调用函数来处理所需的函数。