Вопрос по asp.net-mvc, asp.net-mvc-3, model, viewmodel – разница между моделями и моделями

11

Я исследовал структуру проекта asp.net MVC для нового проекта, и у меня возник вопрос о том, что меня смущает. В чем разница между моделями и моделями вида? Буду ли я прав, говоря, что модели представлений охватывают модели в свойствах формы?

Это ТАКstackoverflow.com/questions/4061440/… , прекрасно отвечает на этот вопрос. Bibhu
Вы могли бы гуглить. ТАК сам по себе есть много вопросов, рег. эта тема. VJAI

Ваш Ответ

4   ответа
29

latest posts, latest comments, post categories в одном представлении. Как я могу это сделать? Я могу строго напечатать мой взгляд на любую из моделей, верно? Приходитview model.

Я создал модель представления под названиемBlogViewModel который содержит последние сообщения, последние комментарии и другие вещи как свойства, и я связываю свой взгляд с этой моделью.posts, comments.. являютсяdomain models в то время какBlogViewModel этоview model Я создал специально для просмотра.

Завтра я покажу свой блог в мобильной версии, и тогда я смогу создать простую модель представления, которая будет содержать только меньше свойств. Наконец, модели представлений предназначены для представлений, и в большинстве случаев они выступают в качестве обёрток над реальными моделями доменов!

4

ViewModel является версией модели из слоев бизнес-домена, адаптированной к конкретному представлению.

Он имеет только свойства, относящиеся к представлению, и не должен иметь методов (кроме простых, таких какToString()).

ViewModel является «контейнером данных»; только.

22

как хранятся ваши данные (база данных, службы и т. Д.), И модель будет очень похожа на них.

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

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

FirstName LastName BirthDate

Тем не менее, в вашей ViewModel вы можете представлять его по-другому и иметь что-то похожее на:

FullName Age
Я бы добавил, что объект Model должен представлять семантическую / концептуальную структуру объекта, его внутренние / природные свойства и поведение, а не столько, сколько он фактически хранится. Хранение подчиняется деталям реализации, которые не являются фактическими характеристиками объекта.
мне кажется, что МОДЕЛИРОВАНИЕ является наиболее игнорируемым среди самых важных мероприятий по развитию (ну, по крайней мере, в большинстве мест, которые я знаю ...)
@heltonbiker, это отличный момент. Я думаю, что есть много моделей, ViewModels, моделей бизнес-логики, моделей хранения данных и т. Д. Мы часто боремся, потому что мы не учитываем различия каждой из них и вместо этого концентрируемся на их сходстве. Я мог бы просто написать пост в блоге об этом в ближайшее время;)
2

енее, существует несколько типов моделей, о которых вам следует знать.

Domain Model: This represents a domain object in your application, like a SQL table if you are using an ORM (Linq2SQL, EF).

View Model: This represents an object that you want your end users to view/edit/etc. A view model could contain properties from several or no domain models and typically exclude properties that your end users should not be mucking with. View Models should only contain the elements that are needed to display the appropriate data to the end user for a specific request.

Вот какой-то Джимми Богард для вас о View Models и их использовании.

Похожие вопросы