2011-08-31 110 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 *起來了。看看我自己的答案。對不起,懷着你的時間伴侶。 –