【发布时间】:2011-06-17 06:41:14
【问题描述】:
在决定从控制器动作返回哪个动作结果时,我决定使用三元运算符而不是更长的 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 对象。但我认为这与问题无关。
好的...我刚刚意识到我正在做的事情是不必要的,因为无论我返回到带有 updatedCategory 的编辑操作,所以我不需要确保模型是有效的。如果有人可以提供帮助,我仍然很想知道这个问题的答案。
【问题讨论】:
标签: asp.net-mvc actionresult viewresult