I refer to the second answer from this topic.
I wrote something like this in my project:
public class DetailsViewModel<T> where T : Standard
{
public IList<T> OrderLines { get; set; }
}
public class Standard
{}
public class InitialStandard : Standard {}
public class AlteredStandard : Standard {}
public class InitialDetailsViewModel : DetailsViewModel<InitialStandard>
{}
public class AlteredDetailsViewModel : DetailsViewModel<AlteredStandard>
{}
Then I have two methods to whom I refer to one ActionResult:
public void DetailsInitial(long Id)
{
Details<InitialDetailsViewModel>(orderId);
}
public void DetailsAltered(long Id)
{
Details<AlteredDetailsViewModel>(orderId);
}
public ActionResult Details<T>(long Id) where T : DetailsViewModel<Standard>
{
var model = Mapper.Map<T>(order);
return model;
}
How to use this method with DetailsViewModel
children, if they are not generic?
I remark that difference in mapping is in profiles for InitialStandard
and AlteredStandard
classes.