2012-03-23 3 views
1

から有効なビューのリターンは私がこのような方法があります:私はこのコードを実行すると、私のViewModelが有効であるとき、私はのリストを表示し、ユーザーを返すしたいコントローラ

[HttpPost] 
    public ActionResult Edit(ViewModel.MyViewModel viewModel) 
    { 
    // Code here to handle the save to the database and in the case 
     // where some validation are not accepted, return View(viewModel) 

    return View("Index", viewModel); 
    } 

をアイテム。

最後の行の代わりにこの場合RedirectToAction( "Index")を使用する必要があることは知っていますが、このコードを実行して最後の行を実行するとMVCはリストページ。

コントローラで処理されるビュー以外を指定できない場合、どのような理由でView関数のパラメータリストにビュー名を指定しますか?

ありがとうございます。

+0

しばらく検索したところ、このページには厳密に型指定されたviewmodelのリストがあるため、間違ったビューモデルをインデックスページに送信しただけであることがわかりました。この場合、単純な戻り値View( "Index")とRedirectToAction( "Index")の違いについては、FirefoxのヘルプHttpFoxアドオンで検索しました。最後のものはすべての点で最良の選択です。まず、PRGパターンに準拠するのが最善のhttpステータスコード302を送信し、次にviewmodelのリストを埋めるためにIndexアクションのロジックを複製する必要はありません。 – Samuel

答えて

2

私が代わりに最後の行の この場合にはRedirectToAction(「インデックス」)を使用しなければならないことを知っているが、私はこのコード を実行して、最後の行が実行されると、MVCを返す理由を知っているだろうリストページ の代わりにページを編集してください。

Editビューは実行されません。ブラウザのアドレスバーに/somecontroller/editが表示されている場合でも、MyViewModelのインスタンスを渡したのはIndexビューです。