【问题标题】:how to redirect to another action in same controller?如何重定向到同一控制器中的另一个动作?
【发布时间】:2012-04-27 15:57:10
【问题描述】:

我想重定向到同一控制器中的另一个动作。 我们怎样才能做到这一点? 我试过像 return

RedirectToAction("未授权");

【问题讨论】:

  • 这是正确的方法,什么没用?
  • 你在哪里调用这个重定向?
  • 您是否收到错误消息?
  • 向您的问题添加更多代码。

标签: asp.net-mvc asp.net-mvc-3 redirect controller action


【解决方案1】:
return RedirectToAction("ActionName");

代替return Redirect("/Elearning/NotAuthorized"); 这样做:

return RedirectToAction("NotAuthorized"); // if you're inside the Elearning controller

RedirectToAction("NotAuthorized", "Elearning"); // if calling from other controller

【讨论】:

    【解决方案2】:

    试试

    return RedirectToAction("SomeAction");
    

    【讨论】:

    • 这里出了什么问题?您尝试返回的视图是否真的存在?
    • 你的视图也存在我可以去那个视图
    • 这里有什么错误?我们需要知道错误以帮助您。
    • 我尝试在执行该语句后放置调试器,它只会返回到以前的视图
    • if (so.Count == 0) { return Redirect("/Elearning/NotAuthorized"); }
    【解决方案3】:

    如果你想返回一个重定向

    return RedirectToAction("NotAuthorized");
    

    是执行此操作的有效方法。确保您的方法确实存在。

    或者,如果您不想要重定向

    return View("NotAuthorized");
    

    同样有效。

    【讨论】:

    • return RedirectToAction("NotAuthorized");公共 ActionResult NotAuthorized() { int userId = GetCurrentUserID();这就是我在控制器中编写的方式.. ViewBag.ViewList = _menuViewUtility.GetViewList(userId); ViewBag.MenuList = _menuViewUtility.GetMenuList(userId, ViewSession.ViewId);返回视图(); }
    【解决方案4】:

    尝试先探索 ControllerBase,或者转到控制器继承的控制器的定义,然后查找“重定向”

    【讨论】:

      【解决方案5】:

      我正在使用 asp.net MVC 3,它可以工作:return Redirect("/{VIEWPATH}/{ACTIONNAME}");

      例如,return Redirect("/account/NotAuthorized"); 其中“帐户”是您的视图路径,您的控制器名称是 AccountController。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多