В вашем запросе LINQ вы выбираете анонимный объект.Убедитесь, что вы выбрали Product, который является вашим типом источника (или, более конкретно, IEnumerable<Product>
):
IEnumerable<Product> products = _repository.GetProducts(true);
IEnumerable<ProductViewModel> productsViewModel = Mapper.Map<IEnumerable<Product>, IEnumerable<ProductViewModel>>(products);
return View(productsViewModel);
Также не вызывайте Mapper.CreateMap<TSource, TDest>
внутри действия вашего контроллера.Это должно быть вызвано только один раз за время существования AppDomain, в идеале в вашем Application_Start
.
Также обратите внимание, что я избавился от ViewData, и это здорово.Вам не нужны ViewData.Вы работаете с моделями представления.Это то, что они должны делать.Содержите информацию, которая понадобится вашему представлению в строго типизированном виде.