0

私はMVCに少し慣れていません。私が望むのは、ログインが成功した後、ユーザーをダッシュ​​ボード/インデックスコントローラーアクションにリダイレクトすることです。そうするのに適した場所やテクニックは何ですか?ajax成功イベント、またはログインコントローラーで?

ログインフォーム -

<form action="/Home/Login" id="loginForm" >
  // other markups
</form>

このフォームは jquery ajax 経由で送信されます。

        <script type="text/javascript">
        $(document).ready(function () {
            $('#loginForm').submit(function (event) {
                event.preventDefault();
                var data = $(this).serialize();
                var url = $(this).attr('action');
                $.post(url, data, function (response) {
                    //redirect from here?
                });
            });
        });
    </script>

JQuery ajax がコントローラー メソッドを呼び出しています

    [HttpPost]
    public ActionResult Login(string username, string password)
    {
          //Login successfull.
          //Redirect from here ??
    }
4

3 に答える 3

1

送信に ajax を使用している場合、サーバー コントローラーはステータス応答を返す必要があります。これを$.postコールバックで解析して、リダイレクトするかどうかを決定し、window.locationjavascript obkect を使用してリダイレクトします。

于 2013-10-27T18:25:38.253 に答える
1

これは非同期と呼ばれるため、フォーム C# コードをリダイレクトすることはできません。ログインに成功したら、JQuery からリダイレクトする必要があります。

window.location.href = "http://site/controller/action";
于 2013-10-27T18:23:17.710 に答える
0

認証/承認はコントローラーで実行されていると思います。そのコードが成功または失敗して実行されたら、次のビュー/コントローラーに移動します。これが意図した機能である場合は、RedirectToActionメソッドを使用して目的のページに移動することをお勧めします

RedirectToAction の詳細なドキュメントは、ここにあり ます Controller.RedirectToAction メソッド

于 2013-10-29T05:41:54.650 に答える