假设您有一个ASP.NET MVC项目并且正在使用服务层,例如在asp.net站点上的这个联系管理器教程中:http: //www.asp.net/mvc/tutorials/iteration-4-make-的应用程序,松散耦合-CS
如果您有视图的视图模型,那么服务层是否适合提供每个视图模型?例如,在服务层代码示例中有一种方法
public IEnumerable<Contact> ListContacts()
{
return _repository.ListContacts();
}
Run Code Online (Sandbox Code Playgroud)
如果你想要一个IEnumerable,它应该进入服务层,还是在其他地方是"正确"的地方?
也许更合适的是,如果您为与ContactController关联的每个视图都有一个单独的视图模型,那么ContactManagerService是否应该有一个单独的方法来返回每个视图模型?如果服务层不是正确的位置,那么viewmodel对象应该在哪里被初始化以供控制器使用?
(我使用的是ASP.Net MVC,但这似乎是一个更通用的MVC问题)
假设您有一个代表一个人的域模型,并且您有一个编辑人物的视图.Person域对象中包含State of residence属性,在视图中您需要一个列出状态的下拉列表.
是否有任何理由不创建从域模型派生的视图模型,只包含视图所需的UI特性的属性?如果是这样,为什么不想这样做呢?
TIA