1

假设您的解决方案具有以下项目:

  • 核心(实体)
  • 合同(DTO、服务接口)
  • 服务(服务实现)
  • 服务主机 (WCF)
  • 客户端 (ASP.NET MVC)

客户使用合同而不是实体。MVC 项目中的每个视图都有自己独特的视图模型。MVC 项目没有实体意识。

我正在考虑将数据协定作为视图模型重用的可能性,因此我不会从服务中检索 Widget DTO 并将 Widget DTO 映射到 Widget VM,而是检索 Widget DTO 并将其直接传递给视图。

这是好事还是坏事,为什么?

4

1 回答 1

3

这是好事还是坏事,为什么?

如果这些 DTO 严格符合您的视图的要求(这让我非常惊讶),那么,是的,使用它们而不是编写视图模型是完全可以的。

但是,如果您发现自己使用 ViewBag 是因为您的视图所需的某些属性在您的 DTO 中不存在,请立即停止!去为这个特定的视图定义一个视图模型。

于 2012-08-17T06:16:00.143 回答