将编辑和添加视图页面组合到一个Action中

时间:2009-09-23 17:15:11

标签: asp.net-mvc controller

在我的控制器中,我在查询字符串中检查了一个articleID,如果它存在,我将呈现编辑视图页面,否则我将呈现添加视图页面。

现在在我的编辑页面中,有时我的ViewData中的某些类可能为空。

我希望在编辑页面中预先填充文本框。

如何将文本预填充到字段中,但同时可以防范空对象/属性?

1 个答案:

答案 0 :(得分:1)

类型安全选项是定义两个ViewModel而不是一个。一个用于添加页面,另一个用于编辑页面。如果它们有许多保证永远不会为null的公共数据,那么可以在公共基类上实现这些属性,但这不是必需的。

当您决定显示“添加”视图时,将返回具有相应ViewModel的ViewResult。

当您决定显示“编辑”视图时,将返回带有 ViewModel的ViewResult。

然后,每个View都可以是基于ViewModel类型的强类型视图。

这个other SO answer详细阐述了这种方法。