在ASP.Net MVC5中使用ViewModel与DataContracts的好处

时间:2015-03-15 12:48:37

标签: asp.net-mvc asp.net-mvc-5

在构建产品时使用ViewModel与DataContracts有什么好处?我正在为两者寻找利弊。

我可以想到使用Viewmodel的好处是它可以有表示逻辑,

  1. 如果我需要显示完整的用户名,我的viewmodel可以已满 名称,它是名字和姓氏的串联 合同。
  2. 我可以提到数据注释,如需要和 DisplayName是特定于视图的。
  3. 在Visual Studio中,我只需在控制器操作中单击“添加视图”,然后使用脚手架生成视图。
  4. 还有其他好处吗?我的团队中的指南是使用DataContracts。所以我需要更多细节来说服。

2 个答案:

答案 0 :(得分:2)

他们并没有真正用于同一件事。 ViewModels用于构造类中的成员如何在View上显示。 DataContracts用于在服务和网站之类的东西之间传递数据。视图模型是一种将实体模型与显示模型分离的方式,这样您就可以对数据库中的数据进行建模,而不是将其耦合到视图层。

答案 1 :(得分:0)

当您的数据协定与您的viewmodel分离时,您的产品可以更灵活地将表示层更改为另一个。例如,您在wpf应用程序中使用datacontract作为viewmodel。如果您想使用mvvm,则必须更改datacontract结构并实现INotifypropertyChange用于调用属性set中的RaisePropertyChanged方法。现在你也想要一个web应用程序。你需要在Web应用程序中调用RaisePropertyChanged吗?!!(这只是一个示例)。当你使用viewmodels时,你不用担心在更改你的数据时出现数据交换表示层。