将Model类映射到ViewModel类或在ViewModel类中聚合Model类

时间:2010-12-15 16:31:24

标签: asp.net asp.net-mvc asp.net-mvc-3

我很好奇人们认为更好的做法,在视图模型中复制模型结构和使用映射工具在两者之间移动数据,或者在视图模型中聚合模型,即在查看模型类,它是对实际模型的引用。这被认为是一种更好的方法吗?

1 个答案:

答案 0 :(得分:0)

“更好”的方法将始终为每个视图设置一个独特的视图模型,然后使用AutoMapper或类似的东西来处理映射的内容

public class MyViewModel
{
  public int Id { get; set; }
  public string Name { get; set; }

  public MyViewModel() { }
  public MyViewModel( MyModel model )
  {
    AutoMapper.Mapper.Map(model, this);
  }
}

有时会在实践中有所不同,但拥有独特,简洁的视图模型将提供最大的灵活性。