2011-08-31 63 views
9

所以我有一个HttpPost只有ActionResultEdit。做完它的事情(逻辑等)后,我希望它重定向到不同的控制器。可以说HomeController。在这里它是:MVC3重定向到ActionResult路由

[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); 

} 

伊夫tryed其他像return RedirectResult()RedirectToAction()RedirectToRoute("string") - 但它仍保持在返回来自控制器的Edit方法是在(ChairController)中的索引图。

什么是正确的方法来做到这一点?

+1

这是类似的东西已经... [RedirectToRoute应该如何使用?] [1] 希望它可以帮助... [1]:HTTP://计算器。 com/questions/1290355/how-is-redirecttoroute-supposed-to-be-used –

+0

@Jan谢谢。这似乎是在这个职位上为那个人工作,但不适合我:S FML –

+1

@Kasper猜想我误解了你的问题。我以为你说回到同一个行动 –

回答

5

哇wierdest东西是永远不会导致此。代码是正确的(正如我确定的那样)。我试着再次调试它,并注意到当我通过代码时,调试器thingo只标记了一些代码:return RedirectToAction("Index",它实际上停在那里,并没有通过"Home");。我还注意到,我的断点实际上是黄色的,并且告诉我关于源代码的一些内容与原始代码不一样?什么是什么?它一直在说,通过数百次保存,重新启动,构建和重建。出乎意料的是它接受了代码,我的断点变成了红色,代码工作得很好。

真的很抱歉,因为没有时间,你们这些人!

+1

你可能忘了重启你的开发服务器:-P –

18

错字:

contoller = "Home" 

应该

controller = "Home" 

或:

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

Woops。失败错字。但是,正如我的问题所述,已经尝试了RedirectToAction()。没有工作。 –

+1

@Kasper Skov,除非你已经搞乱了你的路由定义'返回RedirectToAction(“index”,“home”);'工作得很好。 –

+0

呵呵我知道。它的f *起来了。看看我自己的答案。对不起,怀着你的时间伴侣。 –