将MVVM应用于ASP.NET MVC。如何进行属性映射?

时间:2011-10-17 22:12:39

标签: asp.net-mvc-3 entity-framework mvvm mapping

有很多关于在ASP.NET .NET MVC中使用MVVM patterm的文章。例如,它是http://blogs.microsoft.co.il/blogs/helpercoil/archive/2010/08/28/asp-net-mvc-and-the-mvvm-pattern.aspx

我只有一个问题。我们为一个Model提供了很多ViewModel。如何使用viewModel对象自动填充模型属性?如何进行自动属性映射?

我使用实体框架。

例如,我的模型测试具有以下属性:

  • ID
  • 名称
  • 标题
  • ID用户所
  • idCompany

我为我的任务制作了ViewModel。此ViewModel(TestUserViewModel)用于具有以下特性的简单用户:  - ID  - 名称   - 标题

例如,用户编辑现有测试。结果,我们有一个类型为TestUserViewModel的对象。我想要:

  • 同步Model对象和ViewModel。
  • 保存idCompany的默认值,idUser - 用于从当前ViewModel中排除的属性。
  • 使用一些自动内容 - 它可能类似于ApplyCurrentValues。我真的不想写下很多代码:

    modelObj.name=viewModelObj.name;
    modelObj.title=viewModelObj.title;
    

使用System.Reflexion也看起来很糟糕。

那么,怎么做呢?

1 个答案:

答案 0 :(得分:2)

如果您不想将大量映射代码从一个对象写入另一个对象,您可能需要查看AutoMapper http://automapper.org/等映射工具

话虽如此,正如@Darin Dimitrov指出的那样,你也应该检查你的架构。如果您正在使用ASP.NET MVC,您应该更熟悉MVC而不是MVVM。当您阅读有关如何使用MVC的更多信息时,您将开始看到“viewModels”的使用。请记住,MVC中的这些“viewModels”与“MVVM”中的“VM”无关。