使用一个新项目学习ASP.NET MVC,并且不确定某些事情应该发生在哪里.我已经读过ViewModels是一件好事(tm)并且计划以类似的方式进行,但我仍然不完全清楚模型与控制器的责任.
ViewModel应该负责从ORM实际加载自己吗?因此控制器只调用ViewModel.GetObject()并将结果传递回视图?
或者我应该在Controller中加载数据,然后将其转换为ViewModel?似乎这样在Controller中投入了大量的工作,但应该保持一定的轻量级.
我想我也可能有第三方负责提取数据,然后Controller会调用它并将其转换为适当的ViewModel.
那么对什么是"最佳"方法的任何想法?
控制器将创建viewmodel对象并使用模型填充它.该模型应使用ORM来获取数据.
ViewModel始终仅针对视图,并且该模型特定于域.在CQRS中,您实际上只需获取ViewModel并将其发送到视图.
从控制器中,您可以执行使视图发生CRUD所需的一切.如果您使用Repo模式,那么如果您使用NHibernate或EF直接使用酷炫的工具.一旦ViewModel进入视图,它将与数据库之类的所有内容断开连接,因此在它到达之前将其填满.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |