MVC3中具有可选辅助模型的视图的结构

时间:2012-02-06 22:28:05

标签: asp.net-mvc-3 model viewmodel

我有一个我正在研究的MVC3项目,它有一个带有相关强类型视图模型的View。我的任务是在此视图中添加一个可选部分,其中包含第二个模型的数据,其中大约一半与第一个模型共享。

我的问题是,实现这个的最佳方法是什么?我应该只将可选模型表示的对象添加到视图模型并尝试从那里映射值吗?

如果我这样做,我如何将编辑器与两个模型相关联?

2 个答案:

答案 0 :(得分:1)

我想我明白你的要求,这就是我过去的成就。

在视图模型中添加可选模型作为参数,然后创建键入该可选模型的局部视图。如果满足允许显示部分视图的条件,则将viewmodel.optionalmodel传递给该部分视图。

你必须要小心引起任何令人头疼的参数重叠(如在空引用中)

答案 1 :(得分:1)

将可选模型添加到视图模型是最佳选择,因为与ViewBag不同,它是类型安全的,您仍然可以利用html帮助程序。只需记住在渲染之前检查第二个模型的空引用(因为它是可选的)。 对于共享属性,您的视图模型可以具有特殊的getter / setter,它们将保留内部同步的两个模型。