0

我有一个带有控制器的 MVC 层,这些控制器使用服务层来获取和存储数据。在我的服务层中,我有这样的方法:

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 来显示数据。在实现编辑服务之前,这一直很好——我现在要做的是创建一个 UpdateSet 方法,该方法从控制器中获取一个 viewModel 并相应地更新数据库。

由于 MVC 层依赖于 Service 层,因此 Service 层不了解 viewModel。这是依赖注入的地方吗?或者有没有更好的方法来解决我忽略的这个问题?

4

1 回答 1

1

您需要将 ViewModel 转换为Set,然后将其传递给服务层。

public class SetController : Controller
{
    public Action Edit(SetViewModel viewModel)
    {
        var set = _setService.GetSet(viewModel.SetId);
        set.Prop1 = viewModel.Prop1;
        _setService.Edit(set);
    }
}
于 2013-02-25T18:45:48.530 回答