Модель MVC: отправка нескольких объектов в представление - PullRequest
0 голосов
/ 12 января 2009

Я не уверен, есть ли разница в этих двух методах. Если это так, то это будет считаться лучшей практикой при отправке более одного объекта в представление.

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

  2. Определение модели представления и возможность вызова контроллера этой единственной моделью для представления в представление.

  3. другой ...

Ответы [ 2 ]

3 голосов
/ 12 января 2009

Я предполагаю, что у вас есть представление, которое представляет некоторую информацию из более чем одной модели, возможно, в виде списка. Например, у вас может быть модель клиента, которая имеет набор контактов, но в своем списке вы хотите выбрать отображение некоторых сведений о клиенте вместе с именем и номером телефона основного контакта. Что я обычно делаю в такой ситуации, так это определяю конкретную модель «презентации», которая состоит только из тех деталей, которые я могу захотеть показать в этом комбинированном представлении. Обычно это модель только для чтения. Используя LINQ to SQL, я мог бы даже определить это как табличную функцию (для поддержки поиска) и связать ее с представлением, которое инкапсулирует объединение различных таблиц. В обоих случаях вы можете добавить основанную на представлении модель представления в ваш DBML и связать табличную функцию с ней в качестве метода в контексте данных.

Я предпочитаю делать это, потому что считаю, что с точки зрения запросов более эффективно создать запрос на сервере и просто использовать его из кода. Если вы не используете табличную функцию для поиска, вы можете составить запрос в коде и выбрать класс «презентация». Я предпочел бы фактический класс по анонимному типу для простоты использования в представлении. Получить свойства из анонимного типа в представлении будет сложно.

3 голосов
/ 12 января 2009

Вы должны отправить View один объект, иногда называемый ViewModel объектом, содержащий все данные (включая объекты модели домена), которые понадобятся представлению.

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