asp.net-mvc-3c#-4.0automapper-2

How to make mapping between List<string> and a string?


I have a Model an ViewModel Like this, but AutoMapper doesn't pass the values from MyViewModel to 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>();

What do I have to do to make the mapping work correctly?


Solution

  • If you don't want to have properties with same name, then use custom mapping for that member:

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