如何在List <string>和字符串之间进行映射?</string>

时间:2012-12-25 21:12:43

标签: asp.net-mvc-3 c#-4.0 automapper-2

我有一个Model和一个ViewModel像这样,但AutoMapper不会将值从MyViewModel传递给MyModel!

为MyModel:

public List<string> ContentLinks { get; set; }
public string ListOfContentLinks {
    get
    {
        return String.Join(";", ContentLinks);
    }
    set {
        ContentLinks = value.Split(';').ToList();
    } 
}

MyViewModel:

public List<string> ContentLink { get; set; }

Boostrapper:

Mapper.CreateMap<MyViewModel, MyModel>();

如何使映射正常工作?

2 个答案:

答案 0 :(得分:1)

属性必须与默认映射具有相同的名称。您在一个案例中有ContentLinks,在另一个案例中有ContentLink

答案 1 :(得分:1)

如果您不希望具有相同名称的属性,请使用该成员的自定义映射:

Mapper.CreateMap<MyViewModel, MyModel>()
      .ForMember(d => d.ContentLinks, opt => opt.MapFrom(s => s.ContentLink));