Нужна ли мне модель или вид модели?MVC 3 - PullRequest
1 голос
/ 22 ноября 2011

У меня довольно стандартный сценарий, когда у меня есть модель, которая в данном случае является продуктом.

Модель продукта имеет множество свойств, таких как цена, стоимость и т. Д., Которые я хочу отобразить в представлении.

У меня это работает нормально.

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

Когда пользователь нажимает добавить в корзину, мне нужен только список аксессуаров и идентификатор родительского продукта.

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

Я новичок в mvc, если вы еще не догадались !! и я использую MVC 3.

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

Рекомендуется использовать отдельную модель представления, поскольку это означает, что вы можете добавить дополнительную информацию за пределы Продукта, которая может иметь отношение к делу, такую ​​как информация о корзине и пользователе.Если у вас есть много полей в продукте, вы можете использовать Automapper, чтобы взять соответствующие поля и сопоставить их с моделью представления.Также вы можете при необходимости сгладить модель и выполнить серверные запросы, которые касаются всех связанных с моделью элементов, таких как информация о категории и т. Д.

Взгляните на Automapper:*

как только вы начнете использовать его, вы не будете оглядываться назад.

1 голос
/ 22 ноября 2011

Академическим способом было бы создать отдельный класс ViewModel, содержащий только те данные, которые вам необходимы в представлении.

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

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