Я недавно работаю с ASP.NET MVC 2, и одним из примеров, которым я следую , является официальный магазин ASP.NET MVC Music Store на codeplex.
В примере проекта у них есть такой сценарий: есть три модели: Albums
, Artists
, Genres
.
Что заставляет меня сомневаться в том, как они относятся к своим представлениям, например, когда они хотят отредактировать альбом, необходимо иметь список всех исполнителей и жанров из базы данных, поэтому они создают ViewModel с именем StoreManagerViewModel
:
public class StoreManagerViewModel{
public Album Album{get;set;}
public List<Artists> Artists{get;set;}
public List<Genre> Genres{get;set;}
}
Эта ViewModel передается в представление и позволяет использовать intellisense и просматривать несколько моделей в представлении.
Этот метод, кажется, заставил бы меня иметь дополнительный класс для почти каждого отношения в моей модели:
Если у меня есть класс Discography, и я хочу связать Artists с Discography, мне придется создать другую ViewModel, подобную описанной выше.
Однако мне не нравятся два свойства внутри метода Album:
public List<Artists> Artists{get;set;}
public List<Genre> Genres{get;set;}
Есть ли лучший способ сделать это, кроме ViewModels? Есть ли более чистый путь?