Cra*_*gly 2 automapper asp.net-mvc-3
我试图改进我的MVC 3模型和视图(主要是CRUD)之间的数据流.我采用了使用ViewModels和FormModels的方法.我的视图模型包含了一切可能需要代表认为FORMDATA,DropDownLists等FormModel只包含了由形式提交,需要更新记录的FORMDATA领域.
我的问题是我可以使用AutoMapper将UserDto信息映射到我的ViewModel中的FormData字段吗?
显然我的映射只是两个对象之间的映射而不是属性的对象,但我尝试使用'.ForMember'映射选项,但它们又是对象成员而不是对象成员的对象.我也看了自定义类型转换器,但不确定这是否是正确的方法.
Mapper.CreateMap<UserDto, UserViewModel>();
Mapper.CreateMap<UserViewModel, UserDto>();
public class UserViewModel
{
public User FormData { get; set; }
// DropDownLists
// Other view specific data
}
public class UserFormModel
{
public int UserId { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Age { get; set; }
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激.
您需要创建FormData属性类型的映射,然后告诉AutoMapper使用此映射.
(以下可能无法编译;我正在重新创建我的工作机器并且正在从内存中工作).
Mapper.CreateMap<UserDto, User>(); // set up property mapping
Mapper.CreateMap<UserDto, UserViewModel>()
.ForMember(vm => vm.FormData, map => map.MapFrom(dto => Mapper.Map<UserDto, User>(dto)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |