返回其他视图而不重定向

时间:2015-03-07 18:34:37

标签: asp.net-mvc redirect

我有两个控制器动作:

public ActionResult Menus()
{
    // Build view model and display Menus view
}

public ActionResult MenuCommand(string commandArg)
{
    // Perform the specified action

    // Now return new Menus views
    return Menus();
}

这个想法是,在我的MenuCommand操作完成后,它会延迟回到此页面的原始处理程序。

但是在上面的代码中,我执行MenuCommand()操作后出现以下错误。

  

找不到视图'MenuCommand'或其主人,或者没有视图引擎支持搜索的位置。

我相信我可以使用RedirectToAction("Menus")解决此问题。但是,重定向效率低下。它将重定向返回给浏览器,然后浏览器必须发出第二个请求。为什么这有必要?我不能简单地返回不同行为的结果吗?

1 个答案:

答案 0 :(得分:0)

因此,我在问题中的担忧是有效的。重定向效率低下。

然而,如果没有重定向,浏览器仍然认为我正在查看" MenuCommand" URL。这可能会导致问题。例如,任何链接都与浏览器认为当前页面的URL相关。最好通知浏览器当前正在显示的正确URL。

因此,我认为最佳做法是使用RedirectToAction()尽管效率低下。