Да, это правильно. Если предположить, что единственная информация, которая понадобится вашей модели, это список, то вам не нужно ActivityHistoryViewModel
, и представление можно набрать так:
@model IEnumerable<ActivityViewModel>
ваша конфигурация автоматического сопоставления будет выглядеть так:
Mapper.CreateMap<Activity, ActivityViewModel>();
вы бы отобразили карту так:
IEnumerable<Activity> data = GetActivities();
var model = Mapper.Map<IEnumerable<Activity>, IEnumerable<ActivityViewModel>>(data);
return View(model);
И когда вы определяете ActivityViewModel
, вы можете либо создать дубликат типа свойство-свойство-свойство, либо обрезать лишние данные, которые вам не нужны (в моем случае это будет что-то вроде «дата создания», то есть генерируется дб и не имеет значения для пользователей).
Или , если вы хотите придерживаться ActivityHistoryViewModel
, чтобы передать больше, чем просто список:
тип просмотра:
@model ActivityHistoryViewModel
Конфигурация отображения может остаться прежней
карта вроде этого:
IEnumerable<Activity> data = GetActivities();
var model = new ActivityHistoryViewModel() {
someOtherProperty = "hello world!",
activities = Mapper.Map<IEnumerable<Activity>, IEnumerable<ActivityViewModel>>(data)
};
return View(model);