在具有域层 (DL)/业务(服务)层 (BL)/表示层 (PL) 的多层项目中,将实体交付到表示层的最佳方法是什么?
DO => Domain Object;
DTO = Domain Transfer Object;
VM => View Model;
V => View;
选项 1:
DL => DO => BL => DTO => PL => VM => V
此选项似乎是最佳实践,但维护起来也很困难。
选项 2:
DL => DO => BL => DTO => PL => V
这个选项似乎不是很好的做法,但由于 DTO 几乎与 VM 相同,我们可以将它直接传递给 View ,并且实现和维护起来不那么痛苦。
此选项对于多种布局是否也可靠,例如,对于移动设备,我可能需要来自 BL 的信息较少,因此我需要针对此特定布局使用不同的 VM?
最佳答案
将DTO传递给 View 就可以了。如果您需要更改或增强 DTO,则创建一个 ViewModel。一个常见的场景是添加链接。 ViewModel 将 DTO 作为复杂属性引用也是可以的。
关于asp.net-mvc - Domain vs DTO vs ViewModel - 如何以及何时使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12874328/