【问题标题】:RedirectToAction is not sending users to correct pageRedirectToAction 没有将用户发送到正确的页面
【发布时间】:2020-05-30 01:45:56
【问题描述】:

如果日期超过 2020 年 5 月 25 日,我想重定向用户 否则他们会得到当前视图

    public ActionResult Login()
    {
        DateTime dt = DateTime.Now;
        DateTime expirationDate = new DateTime(2020, 05, 25);

        if (dt > expirationDate)
        {
            return RedirectToAction("ThankYou", "Home");
        }
        else
        {

        }
        return View();
    }

来自 HomeController.cs 的代码

    public IActionResult Index()
    {
        var userId = User.Identity.Name;
        string userIdfromCache = SaveToCache("UserID", userId);
        return RedirectToAction("Login", "Authentication");
    }

    public IActionResult ThankYou()
    {
        return View();
    }

IActionResultThankYou() 没有重定向用户。它应该显示一个静态 HTML 文件

【问题讨论】:

  • 你有什么授权吗?可能是你忘记在 HomeController 中修改授权了,如果你没有登录,会导致重定向到登录页面。

标签: c# asp.net-core redirect


【解决方案1】:

ActionResult 中的唯一返回是 View()。将RedirectToAction("ThankYou", "Home"); 替换为return RedirectToAction("ThankYou", "Home");,它应该可以工作

【讨论】:

  • 我也这样做了,但它以某种方式进入了重定向循环,然后我的应用程序崩溃了
  • 这可能是 Home/ThankYou 中的代码造成的。我在一个空项目中重新创建了它并添加了“return”为我修复了它。您能否编辑您的问题并在 Home/ThankYou 中添加代码?
  • 当重定向发生时,它只是刷新当前页面,就好像什么都没发生一样然后它进入一个循环。它永远不会触及重定向页面上的控制器(我设置了断点)
【解决方案2】:

我猜你的问题出在其他地方,我试过你的代码它工作得很好!

【讨论】:

    猜你喜欢
    • 2015-01-02
    • 2014-01-08
    • 2015-11-03
    • 1970-01-01
    • 2023-03-11
    • 2021-11-09
    • 2012-10-14
    • 1970-01-01
    • 2010-09-22
    相关资源
    最近更新 更多