在决定从控制器操作返回哪个 ActionResult 时,我决定使用三元运算符而不是更长的 if-else。这是我的问题...
此代码有效
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 是我的 Edit 操作的视图模型,而 updatedCategory 是 EF4 对象。但我认为这与问题无关。
好的...我刚刚意识到我所做的事情是不必要的,因为无论我要使用更新的类别返回编辑操作,所以我不需要确保模型有效。如果有人可以提供帮助,我仍然很想知道这个问题的答案。