如何重定向到同一控制器中的另一个动作?
Posted
技术标签:
【中文标题】如何重定向到同一控制器中的另一个动作?【英文标题】:how to redirect to another action in same controller? 【发布时间】:2012-04-27 15:57:10 【问题描述】:我想重定向到同一控制器中的另一个动作。 我们怎样才能做到这一点? 我试过像 return
RedirectToAction("未授权");
【问题讨论】:
这是正确的方法,什么没用? 你在哪里调用这个重定向? 您是否收到错误消息? 向您的问题添加更多代码。 【参考方案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。希望这会有所帮助。
【讨论】:
以上是关于如何重定向到同一控制器中的另一个动作?的主要内容,如果未能解决你的问题,请参考以下文章