コントローラのアクションから返すActionResultを決定するとき、私は、より長めのif-elseとは対照的に、三項演算子を使うことに決めました。ここに私の問題です...RedirectToAction()対View()および三項演算子ですか?
このコードは
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));
私があれば、他の使用している場合、明示的なキャストを行う必要はありません。さらに、RedirectToAction()とView()の両方がActionResultの派生を返します。
私はこのコードの簡潔さが気に入っていますが、キャスティングは正しくないようです。誰でも私を啓発することはできますか?
これは明らかですが、EditViewModelは私の編集アクションのビューモデルであり、updatedCategoryはEF4オブジェクトです。しかし、私はこれが問題に関連しているとは思わない。
ok ...私が気づいたのは、updatedCategoryで編集アクションに戻っても関係なく、モデルが有効であることを確認する必要がないためです。誰かが助けることができれば、その質問に対する答えを知りたいのは私はまだ不思議です。
のようです。 +1 –
C#リファレンス、http://msdn.microsoft.com/en-us/library/ty67wk28.aspx: "... first_expressionとsecond_expressionの型が同じであるか、_implicit_変換が1つ存在する必要がありますもう片方にタイプしてください。 " +1 –
は理にかなっています。私は迅速な対応に感謝します。 @Andrasは参考に感謝します。私はそれのC#側をもっと見ていたはずです。はっきりとこれがフレームワークの問題ではなく言語の問題であるとき、私はASP.NET MVC側につきました。 –