Hace poco trabajé en esto a mí mismo y tener una gran solución. Lo más probable es que sus dos vistas estén relacionadas de alguna manera en su sistema (especialmente si está utilizando Entity Framework). Verifica tus modelos y deberías ver algo que muestre la relación, si no lo haces, simplemente agrégalo. (Los virtual
)
Sus modelos
public class Dto1
{
public int id { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
public string Property4 { get; set; }
public string Property5 { get; set; }
public virtual Dto2 dto2{ get; set; }
}
public class Dto2
{
public int id { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
public string PropertyD { get; set; }
public string PropertyE { get; set; }
}
Sus ViewModels
public class Dto1ViewModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public virtual Dto2VMForDto1 dto2{ get; set; }
}
//Special ViewModel just for sliding into the above
public class Dto2VMForDto1
{
public int id { get; set; }
public string PropertyB { get; set; }
public string PropertyC { get; set; }
}
AutoMapper se ve así:
cfg.CreateMap< Dto1, Dto1ViewModel>();
cfg.CreateMap< Dto2, Dto2VMForDto1 >();
Asumo que está recibiendo sus datos con LinQ:
Dto1ViewModel thePageVM = (from entry in context.Dto1 where...).ProjectTo<Dto1ViewModel>();
Viola, todo funcionará. En su vista simplemente acceda usando model.dto2.PropertyB
puede con el ValueInjecter http://valueinjecter.codeplex.com/documentation – Omu