我有两个控制器动作:
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")
解决此问题。但是,重定向效率低下。它将重定向返回给浏览器,然后浏览器必须发出第二个请求。为什么这有必要?我不能简单地返回不同行为的结果吗?
答案 0 :(得分:0)
因此,我在问题中的担忧是有效的。重定向效率低下。
然而,如果没有重定向,浏览器仍然认为我正在查看" MenuCommand" URL。这可能会导致问题。例如,任何链接都与浏览器认为当前页面的URL相关。最好通知浏览器当前正在显示的正确URL。
因此,我认为最佳做法是使用RedirectToAction()
尽管效率低下。