我有控制器,使用服务层获取和存储数据的MVC层。在我的服务层我有这样的方法:将服务层添加到MVC - 如果服务层不知道ViewModels,如何处理Edit()?
public interface ISetServices
{
List<Set> GetBreadcrumbs(int? parentSetId);
List<Set> GetAllSets();
List<Set> GetAllTopLevelArchivedSets();
List<Set> GetTopLevelSets();
Set GetSet(int? setId);
Set CreateSet(string name, string details, int? parentSetId);
void DeleteSet(int? setId);
void ArchiveSet(int? setId);
void UnArchiveSet(int? setId);
/etc
我的MVC层使用viewModels来显示数据。在实现Edit服务之前,这一直没有问题 - 我现在要做的是创建一个UpdateSet方法,该方法从控制器获取viewModel并相应地更新数据库。
由于MVC层是依赖于服务层,服务层没有的ViewModels的知识。这是依赖注入进来吗?还是有更好的方法来处理我忽略的方法?
是'设置'视图模型还是DTO /域模型? – Martin 2013-02-25 18:25:47
您需要将viewModel属性映射到域模型属性。您的服务层将使用域模型,您的UI与视图模型。您可以手动执行此映射或使用像AutoMapper – 2013-02-25 18:26:04
设置一个插件是一个域模型马丁 – RobVious 2013-02-25 18:29:02