Asp.net mvc 未按正确顺序调用asp.net MVC ajax方法

Asp.net mvc 未按正确顺序调用asp.net MVC ajax方法,asp.net-mvc,jquery,asp.net-mvc-2,Asp.net Mvc,Jquery,Asp.net Mvc 2,我有一个asp.net应用程序,如果用户未通过身份验证,我想显示登录弹出窗口,如果用户通过身份验证,则在同一页面上显示memberarea弹出窗口 我有这个控制器动作方法 [ActionName("151LoginAPI")] public ActionResult NewCallRecording(string ID, string PSSWD, string ACCID, string PASSWDINT) { .... .... ... return v

我有一个asp.net应用程序,如果用户未通过身份验证,我想显示登录弹出窗口,如果用户通过身份验证,则在同一页面上显示memberarea弹出窗口

我有这个控制器动作方法

 [ActionName("151LoginAPI")]
        public ActionResult NewCallRecording(string ID, string PSSWD, string ACCID, string PASSWDINT)
        {
....
....
...

return view();
}
在151API视图中,我在document.ready函数中完成了此操作

 $.ajax({
                type: "POST",
                dataType: "json",
                url: "/recording/verifyUser",
                data: {
                    ID: $("#ID").val(),
                    PSSWD: $("#PSSWD").val(),
                    ACCID: $("#ACCID").val(),
                    PASSWDINT: $("#PASSWDINT").val()
                },
                success: function (data) {
                    if (data == "success") {

                        jQuery('#dialog-AddCallRecording').dialog({ closeOnEscape: false });


                        $(".ui-dialog-titlebar").hide();
                        $("#dialog-AddCallRecording").dialog({ dialogClass: 'transparent', modal: true });
                        $("#dialog-AddCallRecording").dialog("open");                     

                    }
                    else {
                        jQuery("#dialog-user-login").dialog('option', 'position', 'center');
                        jQuery("#dialog-user-login").dialog("open");
                    }
                }
            });
我已经定义了verifyuser,它正在验证并显示正确的弹出窗口

它工作正常,但问题是当我设置断点时。我看到NewCallRecording总是很受欢迎。在那之后,verifyuser被击中。我想先检查verifyuser,然后在用户打开/NewCallRecording页面时点击NewCallRecording actionmethod


请建议我怎么做。

验证用户调用是ajax,而NewCallRecording是控制器操作。如果直接调用该操作,它将在Ajax调用之前执行,因为actionresult加载DOM,在本例中为NewCallRedording


在这种情况下,我认为您还需要进行服务器端验证,如果用户未经验证,则将用户重定向到登录页面。

在这种情况下,我是否应该删除ajax调用?另外,如果我让NewCallRecording actionmethod只是GEt操作的一个伪操作方法,并为POST创建另一个?但我需要得到我认为。。。我真的很困惑,如果您想在页面加载之后,在任何其他操作调用中验证用户,JAX是有用的。您可以进行虚拟操作调用,进行ajax验证,然后调用实际操作,但这似乎有点复杂。考虑用一个属性来装饰您的动作,它可以是一个动作过滤器,在动作执行之前验证用户。