Может кто-нибудь объяснить, зачем использовать ViewModels в MVC3? - PullRequest
3 голосов
/ 16 января 2012

При исследовании архетектур MVC 3 я постоянно видел одну вещь - концепцию разделения моделей на их собственный проект и вызова его ViewModels.

Поскольку я пишу код, у меня возникаеттрудно понять, в чем выгода.Может кто-нибудь объяснить, в чем преимущества этого?

Ответы [ 4 ]

5 голосов
/ 16 января 2012

Я не уверен, откуда вы взяли, что View модели должны быть в их собственном проекте. Обычно это не так.

Часто бизнес-модель находится в отдельном проекте, как и модель данных, но модели представлений обычно находятся в веб-проекте, к которому они принадлежат, поскольку они являются частью уровня представления.

2 голосов
/ 16 января 2012

Потому что одна важная вещь в MVC - это отделение концерна . Вы должны создать ViewModel, которая содержит только те данные, которые нужны вашему View, без логики.

Вы можете, но вам не нужен отдельный проект (например, Уровень доступа к данным)

ViewModel - это просто простой класс POCO (Plain Old CLR Object, класс, который имеет только свойства, без логики)

Дополнительная информация

1 голос
/ 16 января 2012

Модели представлений являются частью уровня пользовательского интерфейса, поэтому они обычно должны оставаться в одном проекте.

1 голос
/ 16 января 2012

ViewModels используются для настройки модели для использования определенного вида. Если вы хотите передать определенную информацию в представление или получить определенную информацию, вы должны создать модель представления.

Примером ViewModel будет:

public class PersonViewModel
{
    public Person NewPerson { get ; set ; }
    public Address NewAddress { get ; set ; }
    public SelectList Suffixes { get ; set ; }
}

Если у вас было представление, которое создало нового человека, вы могли бы передать ему этот класс ViewModel, который предназначен исключительно для целей нового человека. Представление.

...