在我的ASP.NET MVC 2 (RC)项目中,我使用AutoMapper将Linq to Sql类(Media)和视图模型(MediaVM)之间进行映射。视图模型具有一个SelectList属性用于在视图中显示下拉列表。我有一个自定义的值解析器来从数据库中填充SelectList属性项,但我想知道是否有一种方法可以通过源模型传递一些值到解析器中(使用ConstructedBy方法?)来a)定义所选项和b)过滤从数据库中获取的项。源对象被传递到自定义解析器中 - 但是解析器在多个不同类型的源对象上使用,因此更愿意在我的映射配置中定义从哪里获取这些值。以下是我的视图模型:
自动映射程序的映射配置:
有没有方法可以实现这个?
public class MediaVM
{
public bool Active { get; set; }
public string Name { get; set; }
[UIHint("DropDownList")]
[DisplayName("Users")]
public SelectList slUsers { get; private set; }
}
自动映射程序的映射配置:
Mapper.CreateMap<Media, MediaVM>()
.ForMember(dest => dest.slUsers, opt => opt.ResolveUsing<UsersSelectListResolver>());
希望能在 .ForMember 映射子句中实现以下类似操作:
.ConstructedBy(src => new UsersSelectListResolver(src.UserID, src.FilterVal))
有没有方法可以实现这个?