devdigital's ответ правильный, вы не должны показывать свою модель через контроллер (с точки зрения дизайна, это заставляет ваш View знать что-то о контроллере, который превосходит цель ...).
Ваш контроллер должен подготовить все данные, которые понадобятся вашему представлению, и передать их при создании ViewResult (что и делает return View(model)
для имени представления по умолчанию).
Однако вы также спросили, есть ли лучший способ сопоставления свойств между объектами. Я не думаю, что ссылка devdigital упоминает этот конкретный инструмент (но он упоминает картографы): AutoMapper (http://automapper.codeplex.com/).
Сначала вы настраиваете карту между двумя объектами / моделями / объектами любого типа. Поведение по умолчанию просто назначит свойства с тем же именем, но затем вы можете настроить игнорирование свойств или настроить присвоение значения.
AutoMapper.Mapper.CreateMap<ExampleEntity, ExampleModel>();
Тогда вы просто используете это ...
ExampleModel model = AutoMapper.Mapper.Map<ExampleModel>(myEntity);
Это будет работать для отображения сущностей 1: 1. Я бы не рекомендовал использовать AutoMapper, если вы на самом деле расширяете ViewModel (ViewModel - это то, что вы будете использовать для предоставления представления с данными, которые поступают из разных сущностей или источников в целом).