2011-08-31 14 views
9

HttpPostEditというだけです。そのことをした後(ロジックなど)、私は別のコントローラにリダイレクトしたい。 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); 

} 

アイブ氏はreturn RedirectResult()RedirectToAction()RedirectToRoute("string")のような他の事をしようと試みた - しかし、それはまだEdit方法は、(ChairController)であるコントローラからインデックスビューを返し続けます。

これを行う正しい方法は何ですか?

+1

は何か似ているもう... [RedirectToRoute使用することを想定している方法は?] [1] ...それがお役に立てば幸い [1]:のhttp://のstackoverflow。 com/questions/1290355/how-is-redirecttoroute-used-be-be-used- –

+0

@Janありがとうございます。それはポストのその男のために働いているようだが、私のためではない:S FML –

+1

@ Kasperはあなたの質問を誤解していたと思う。私はあなたが同じ行動へのリターンを言ったと思った –

答えて

5

うわーwierdest事が今までこれを引き起こしました。コードは正しかった(私が最初に確信していた通り)。もう一度デバッグしようとしましたが、デバッガでコードの一部がマークされていることに気が付きました。return RedirectToAction("Index",実際にそこに停止し、"Home");を実行しませんでした。私はブレークポイントが実際には黄色で、ソースコードが元のコードと何か違うと言っていました。何?それは何百ものセーヴを通し、再起動、ビルド、そして再構築することを続けました。青からコードを受け取り、ブレークポイントが赤に変わったので、コードは正常に機能しました。

本当にあなたの時間の人を腰掛けて申し訳ありません!ここで

+1

おそらく、開発サーバーを再起動するのを忘れてしまったでしょう: - P –

18

タイプミス:

contoller = "Home" 

controller = "Home" 

かでなければなりません:

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

Woops。 typoに失敗します。しかし、ええ私の質問に記載されているように、既にRedirectToAction()を試してみてください。 doesnt仕事。 –

+1

@ Kasper Skov、あなたのルート定義で何かを混乱させない限り 'Return RedirectToAction(" index "、" home ");は完璧に動作します。 Hehe私は知っている。 –

+0

そのf * cked。自分の答えをチェックしてください。あなたの時間の仲間を抱きしめて申し訳ありません。 –

関連する問題