コントローラアクションから返すActionResultを決定するとき、より長いif-elseではなく、3項演算子を使用することにしました。これが私の問題です...
このコードは機能します
return
ModelState.IsValid ?
(ActionResult) RedirectToAction("Edit", new { id = id }) :
View(new EditViewModel(updatedCategory));
しかし、これはしません
return
ModelState.IsValid ?
RedirectToAction("Edit", new { id = id }) :
View(new EditViewModel(updatedCategory));
if-elseを使用する場合は、明示的なキャストを行う必要はありません。さらに、RedirectToAction()とView()の両方がActionResult派生物を返します。
私はこのコードの簡潔さが好きですが、そのキャストは正しくないようです。誰かが私を啓発できますか?
これは明らかですが、EditViewModelは私の編集アクションのビューモデルであり、updatedCategoryはEF4オブジェクトです。しかし、これはこの問題に関連しているとは思いません。
わかりました...updatedCategoryを使用して編集アクションに戻っても、モデルが有効であることを確認する必要がないため、自分が行っていたことが不要であることに気付きました。誰かが助けてくれるなら、私はまだ質問への答えを知りたいです。