Asp.Net MVC - 将数据对象映射到视图模型

时间:2009-11-11 10:20:09

标签: asp.net-mvc

我们当前的MVC项目设置为具有ViewModel,它封装来自存储库的数据并将其传递给视图。

从Data Object到View模型进行映射(在控制器中)时,实现此目的的最佳方法是什么?

我见过AutoMapper(http://www.codeplex.com/AutoMapper),但想知道是否有开箱即用的解决方案?

1 个答案:

答案 0 :(得分:4)

AutoMapper似乎是被许多人接受的解决方案。

我想说,在MVC世界中没有“开箱即用”的解决方案 - 例如,与Ruby on Rails不同。框架是高度可扩展的,但同时又非常薄,所以在很多领域你必须发明自己的“自以为是”的做事方式。举个例子,我个人有我的观点模型:

  • 声明静态ConfigureAutoMapper()
  • 具有可选的Setup(realmodel)方法或可选的构造函数
  • ViewModel(destinationViewModelType)用于操作,并自动执行转换 - 创建视图模型,调用Setup或Constructor,或调用AutoMapper
  • 使用预定义的ConstructUsing创建ViewModel映射,使用IoC容器进行实例化,以便视图模型在需要时获取其IoC依赖关系

以上都不存在于开箱即用的MVC中。我会说MVC只支持“开箱即用”类似ViewData的用法。