2013-06-14 4 views
3

Я немного новичок в ASP.Net MVC, но я стараюсь понять, когда и как лучше всего использовать ViewModels.Лучший способ обработки нескольких моделей в одном представлении

Во многих моих представлениях требуемые данные лишь частично относятся к одной модели. Для этого я использую AutoMapper для сопоставления модели с ViewModel, а затем передаю ViewModel в представление.

Однако в других представлениях требуются данные из нескольких моделей.

Путь я достичь этого до сих пор так:

public class GamesEditData 
{ 
    public Game Game { get; set; } 
    public ICollection<Genre> Genres { get; set; } 
} 

... где игры и Жанр являются модели. Тем не менее, я чувствую, что здесь что-то не так, потому что это прямо передает сами Модели в представление. Это отличается от других случаев, когда я передаю свойства из отдельной ViewModel, что заставляет меня думать, что я нарушаю какой-то шаблон.

Одним словом, что является лучшим способом заполнить представление несколькими моделями с использованием шаблона проектирования ViewModel в ASP.Net MVC?

+1

Вы также можете создать ViewModels для '' Game' и Genre', затем заполнить и использовать их в 'GamesEditData' ViewModel. –

+0

@HenkMollema Спасибо. Возможно, это то, что я делаю, чтобы сохранить все согласованность и отвлечься от использования самих моделей. –

ответ

5

Да, именно так я и сделал бы это. Это просто и легко расширить позже, если вам нужно добавить в модель дополнительные элементы или украсить модель атрибутами.

В качестве альтернативы, вы можете использовать Tuple, объявляя тип модели, как:

@model Tuple<Game, ICollection<Genre>> 
+0

Спасибо за совет. Приятно знать, что я иду в правильном направлении. –

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