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

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

window.location.href = "http://site/controller/action";
于 2013-10-27T18:23:17.710 回答
1

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

于 2013-10-27T18:25:38.253 回答
0

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

RedirectToAction 的更多文档可以在这里找到 Controller.RedirectToAction 方法

于 2013-10-29T05:41:54.650 回答