asp.net-mvc-3 - 将MVVM应用于ASP.NET MVC。如何进行属性映射?

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

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

我只有一个问题。对于一个模型,我们有很多ViewModels。如何使用ViewModel对象自动填充模型属性?如何进行自动属性映射?

我使用 Entity Framework 。

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

  • id
  • 名称
  • 标题
  • idUser
  • idCompany

  • 我为任务创建了ViewModel。此ViewModel(TestUserViewModel)用于具有以下属性的简单用户:
    - ID
    - 姓名
    - 标题

    例如,用户编辑现有测试。结果,我们有了一个类型为TestUserViewModel的对象。我想:
  • 同步Model对象和ViewModel。
  • 将idCompany和idUser的默认值保存为属性,这些值已从当前ViewModel中排除。
  • 使用一些自动的东西-可能类似于ApplyCurrentValues。我真的不想写很多下面的代码:
    modelObj.name=viewModelObj.name;
    modelObj.title=viewModelObj.title;
    

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

    那么,该怎么做呢?

    最佳答案

    如果您不想将大量映射代码从一个对象编写到另一个对象,则可能需要研究诸如AutoMapper http://automapper.org/之类的映射工具。

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

    关于asp.net-mvc-3 - 将MVVM应用于ASP.NET MVC。如何进行属性映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800212/

    相关文章:

    asp.net-mvc-3 - MVC 3 Razor EditorTemplate/DisplayTemplate 母版页

    asp.net-mvc - MVC 组件 GUI 方法

    c# - Entity Framework : StoreGeneratedPattern ="Computed" property

    c# - 使用 LINQ 获取 1-2-3 分数并将其绑定(bind)到 View

    entity-framework - EF4 和 MVC3 - 我需要存储库模式吗?

    asp.net - Dapper:从存储过程映射动态数据透视列

    c# - 以编程方式在任意位置从头开始创建数据库

    c# - 如何使用 2 个字段进行排序

    c# - 在 DataGrid WPF MVVM 中重新加载数据后如何保持对行的关注

    c# - WP7 使用 MVVM 将 StrokeCollection 转换为 PNG?