2013-07-07 2 views
0

В основном в моем приложении я начинаю получать некоторые модели тяжелого обзора (и просматривать модели в этих моделях просмотра). Поэтому, когда я создаю и заполняю их в своих контроллерах, методы контроллера кажутся довольно толстыми (хотя вся логика обрабатывается на уровне модели, а контроллер только вызывает методы для извлечения данных для вставки в модель представления).Где создавать экземпляры и заполнять модели?

Где будет лучшее место для создания экземпляров и просмотра моих моделей?

+0

Как правило, я бы создавал модели представления в контроллере, поскольку их единственная реальная цель должна быть передана в представление. Можете ли вы привести пример из вашего кода, который, по вашему мнению, может быть улучшен? Возможно, вы можете переместить часть логики, которая происходит в контроллере, в саму модель представления? – David

ответ

1

Где бы вы хотели, чтобы создать и сравнить мои модели?

Это будет отображаться на уровне вашего приложения. Например, если вы используете AutoMapper код контроллера может выглядеть следующим образом:

public ActionResult Index(int id) 
{ 
    DomainModel model = repository.Get(id); 
    ViewModel viewModel = Mapper.Map<DomainModel, ViewModel>(model); 
    return View(viewModel); 
} 

или с помощью фильтров пользовательских действий может быть даже еще более упрощен до:

[AutoMap(typeof(DomainModel), typeof(ViewModel))] 
public ActionResult Index(int id) 
{ 
    DomainModel model = repository.Get(id); 
    return View(model); 
} 

Конечно, если вы не используете AutoMapper, но какой-то пользовательский код, это не проблема. Вы просто добавите некоторый интерфейс отображения в свой контроллер, который позаботится об этой работе.

Смежные вопросы