【问题标题】:Redirect to Controller action from an Async Controller action not working从异步控制器操作重定向到控制器操作不起作用
【发布时间】:2015-11-19 12:50:13
【问题描述】:

我在从这个控制器操作重定向时遇到问题

[HttpPost]
public async Task<ActionResult> Login(LoginBindingModel model, string returnUrl)

使用

if (loginViewModel.IsConfirmed)
            {
                await accountService.AuditLogin().ConfigureAwait(false);
                user = await usersService.GetUser().ConfigureAwait(false);

                await SessionWrapper.SetCurrentApplicationUserAsync(user.Data).ConfigureAwait(false);
                await SessionWrapper.SetIsAuthenticatedAsync(true).ConfigureAwait(false);

                **return RedirectToAction("Index", "Fixtures");**
            }

什么都没有发生,它只是重定向回同一页面。我环顾四周,但我找到的信息没有帮助。

我要重定向到的控制器操作如下所示:

[HttpGet]
public async Task<ActionResult> Index(){...}

我有一种感觉,它与它是一个异步方法这一事实有关,但我对它的了解还不够,无法修复它。

任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net asp.net-mvc redirect asynchronous


    【解决方案1】:

    如果两个方法都在同一个控制器中,那么而不是 return RedirectToAction("Index", "Fixtures");

    写"return RedirectToAction("Index");"

    如果它们不在同一个控制器中,那么

    write "return RedirectToAction("Index", "你的方法所在控制器的名称");"

    我认为这应该可以解决问题。

    【讨论】:

    • 感谢您的回复,但我看不出这与我已有的线路有何不同:return RedirectToAction("Index", "Fixtures") - Fixtures 是控制器的名称
    【解决方案2】:

    好的,这就是我的全部工作!

    我完全忽略了显而易见的事情。我现在将我的会话保存在 Redis 缓存中,因为我在访问时遇到问题并且设置是异步的,但是忘记更改将我重定向回登录的会话检查器。

    一旦我改变了这些,我就可以越过登录页面。

    感谢您的帮助,也很抱歉浪费您的时间:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多