Запутался в моделях .net MVC View и моделях - PullRequest
1 голос
/ 24 февраля 2012

Итак, я прочитал немного о .net и MVC.Я помню, что читал что-то, что предлагало использовать ViewModels в MVC.Это помогло бы уменьшить желание помешать представлению данных, которыми должен управлять контроллер.

Я подумал, что это то, на что ссылается шаблон MVVM.Очевидно, что, посмотрев на это, реализация фактически полностью исключает контроллеры.Не совсем то, что я хочу сделать.

Законно ли все еще использовать ViewModel в моем случае?Это лучшая практика или просто ненужная работа?Где бы вы разместили каталог / пространство имен ViewModels?В каталоге Models?

Законно ли для Моделей знать о ViewModels?Например, у вас есть Модель, возвращающая ViewModel в контроллер?

Ответы [ 3 ]

2 голосов
/ 25 февраля 2012

ViewModels не по умолчанию в проектах MVC. Это то, что вам нужно добавить, если вы чувствуете, что вам удобнее связать View с моделью «проще»

http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applications

Концепция ViewModel не только для ASP.NET MVC, так как вы увидите ссылки на ViewModel в Интернете в статьях и публикациях в блогах о шаблонах MVC, MVP и MVVM. Эти посты и статьи могут касаться любого количества технологий, таких как ASP.NET, Silverlight, WPF или MVC ... В этом посте будут рассмотрены модели ViewModel применительно к миру ASP.NET MVC.

http://msdn.microsoft.com/en-us/magazine/ff798279.aspx

1 голос
/ 24 февраля 2012

Модели и ViewModels разные.Не путайте ViewModel с шаблоном MVVM.

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

Используя модель представления, вы получаете хороший способ упростить то, с чем работает представление.Это также отфильтрует то, что можно увидеть в intellisense, поэтому, если у вас есть люди, разрабатывающие модели, отличные от тех, кто работает над представлениями, создание простой модели представления может значительно упростить работу тех, кто просто работает с пользовательским интерфейсом.

1 голос
/ 24 февраля 2012

Шаблоны проектирования, на мой взгляд, являются не жесткими концепциями, а скорее рекомендациями, которые помогут вам лучше спроектировать приложение. Шаблон проектирования Model-View-ViewModel (MVVM) происходит от WPF, где существует очень надежная структура Bata Binding, которая упростила шаблон. Идея состоит в том, что у вас есть бизнес-данные в вашей модели, но, поскольку часто вы просматриваете определенные данные (т.е. текущий выбранный элемент в древовидном элементе управления), которые не принадлежат модели, вы создали объекты модели представления, которые обертывают вашу модель, но модели представления также содержали данные о состоянии конкретного вида. Таким образом, ваши виды могут напрямую связываться с моделями видов, а не с объектами моделей, что обеспечивает чистоту моделей (их легко тестировать, обслуживать и т. Д.).

Asp.net MVC отличается тем, что привязка данных в представлениях далеко не так мощна, как в WPF. В WPF вы могли бы реализовать большую часть взаимодействия вашего графического интерфейса и модели с помощью привязки данных, что сделало модели представлений полезными. Но в Asp.net MVC ваши контроллеры предназначены для этого, и поскольку привязка данных близка к несуществующей, я просто не вижу смысла в том, чтобы иметь обертки модели представления вокруг ваших объектов модели в Asp.net MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...