我正在查看一个指南,上面写着“应该使用自动映射器将模型映射到视图模型。” 为什么会有这样的指导?
为什么不让模型成为视图模型的属性?例如,我可以使用这样的视图模型对联系人列表进行分页:
class ContactListPaginatedViewModel {
public Contact myContact; //the model object
public PageInfo pageInfo;
}
即使我需要回发来更新联系信息 - 模型活页夹也会很容易地解决这个问题。如果我需要从绑定中省略某些字段/属性(通过回发或其他方式),那么我可以简单地将绑定注释与“包含/排除”一起使用。
我是否遗漏了一些更大的问题,表明手动映射过程(模型的所有属性都在视图模型上复制)是可取的?
我能想到的最好的结果是模型可能有许多视图(或视图模型)不需要的属性......但即使在那种情况下,上述指导仍然没有意义。
洞察力?