0

私はasp.netアプリケーションを持っており、ユーザーが認証されていない場合はログインポップアップを表示し、ユーザーが認証されている場合は同じページにメンバーエリアポップアップを表示したいと考えています。

このコントローラーアクションメソッドがあります

 [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 がヒットします。ユーザーが/NewCallRecordingページを開いたときにverifyuserが最初にチェックされ、次にNewCallRecordingアクションメソッドがヒットするようにしたい

これを行う方法を教えてください。

4

1 に答える 1

0

VerifyUser 呼び出しは ajax であり、NewCallRecording はコントローラー アクションです。アクションが直接呼び出される場合、DOM は actionresult (この場合は NewCallRedording) によってロードされるため、Ajax 呼び出しの前に実行されます。

この場合、サーバー側の検証も行う必要があり、ユーザーが検証されていない場合はユーザーをログイン ページにリダイレクトする必要があると思います。

于 2013-02-28T07:34:54.230 に答える