ViewModel 应该包含模型吗?(ASP.NET,实体框架)

战士7

视图模型是否应该直接包含模型,如下所示?

public class ViewModel
{
    public Car Car { get; set; }          // Car model
    public Driver Driver { get; set; }    // Driver model
    public Photo Photo { get; set; }      // Photo model

    public List<Skill> Skills { get; set; }   // List of Skill model
}

或者视图模型应该包含另一个视图模型:

{
    public CarViewModel CarViewModel { get; set; }
    public DriverViewModel DriverViewModel { get; set; }
    public PhotoViewModel PhotoViewModel { get; set; }

    public List<SkillViewModel> Skills { get; set; }
}

最佳做法是什么?

迈克尔勋鲍尔

这取决于您在做什么,但通常情况下,第二个选项是最佳实践,假设 Viewmodel 中的所有对象都以某种方式实际显示在 View 中。

还要考虑到您的 ViewModel 项目代表 UI 上的事物,而模型代表业务逻辑。

因此,您的 UI 工件(ViewModel 对象)不一定与一个域对象(业务逻辑对象)相关联。

因此,在您的示例中,“照片”或“技能”在这方面似乎不是一个合乎逻辑的对象。

它们作为 UI Artefacts 存在于要显示的 ViewModel 上,但在逻辑域中,它们更有可能是逻辑对象的属性,可能是驱动程序或其他东西。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章