成功登录后重定向到控制器

时间:2013-10-27 18:15:06

标签: jquery ajax asp.net-mvc-4

我对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 ??
    }

3 个答案:

答案 0 :(得分:1)

您无法重定向表单C#代码,因为这称为异步。成功登录后,您必须从JQuery重定向:

window.location.href = "http://site/controller/action";

答案 1 :(得分:1)

如果您使用ajax提交,您的服务器控制器将需要返回您将在$.post回调中解析的状态响应,以确定是否重定向,然后使用window.location javascript obkect做重定向。

答案 2 :(得分:0)

我觉得您的身份验证/授权在控制器上运行,一旦代码执行成功或失败,您就想要移动到下一个视图/控制器。如果这是预期的功能,我会建议您 RedirectToAction 方法并导航到所需的页面

可以在Controller.RedirectToAction Method

找到更多RedirectToAction文档