MVC3重定向从ActionResult路由

时间:2011-08-31 10:00:16

标签: c# asp.net-mvc-3 actionresult url-redirection

所以我只有HttpPost ActionResult名为Edit。在完成它的事情(逻辑等)后,我希望它重定向到另一个控制器。让我们说HomeController。这是:

[HttpPost]
public ActionResult Edit(Chair chair, string xml)
{
    if (ModelState.IsValid)
    {
        try
        {
            _repository.EditChair(chair, xml);
            return RedirectToRoute(new { contoller = "Home", action = "index"});
        }
        catch (Exception ex)
        {
            //error msg for failed edit in XML file
            ModelState.AddModelError("", "Error editing record. " + ex.Message);
        }
    }
    return View(Chair);

}

我尝试了其他内容,例如return RedirectResult()RedirectToAction()RedirectToRoute("string") - 但它仍然保持从Edit方法所在的控制器返回索引视图({{1 }})。

做正确的方法是什么?

2 个答案:

答案 0 :(得分:20)

错字:

contoller = "Home"

应该是

controller = "Home"

或:

return RedirectToAction("index", "home");

答案 1 :(得分:5)

哇最糟糕的事情是造成这种情况。代码是正确的(我确定开始)。我试图再次调试它,并注意到在我完成代码时,调试器thingo只标记了一些代码:return RedirectToAction("Index",它实际上停在那里,并没有通过"Home");。我还注意到我的断点实际上是黄色的,并且告诉我一些关于源代码与原始代码不一致的事情?什么什么?它一直在说通过数百次保存,重启,构建和重建。突然之间它接受了代码,我的断点变成了红色,代码运行得很好。

真的很抱歉让你的时间过去了!