在我的一个视图中,我有一个ViewModel,我从两个表中填充,然后绑定一个List< ViewModel>一个可编辑的GridView(ASP.NET Web窗体).
现在我需要发送已编辑的List< ViewModel>返回到Services层以在数据库中更新它.
我的问题是 – 是否可以将ViewModel发送回服务,还是应该留在演示文稿中?如果不是 – 我应该更好地使用DTO吗?非常感谢.
解决方法
好问题!
在与我的队友讨论MVC应用程序的几次(硬)辩论后,我不建议将viewmodel传递给您的服务/域层.
> ViewModel属于演示文稿,无论如何.
>因为viewModel可以是不同模型的组合(例如:从10个模型构建的1个viewModel),所以您的服务层应该只适用于您的域实体.
否则,您的服务层最终将无法使用,因为viewModel会限制一个视图的细节.
像https://github.com/AutoMapper/AutoMapper这样的好工具可用于制作地图工作.