Как правильно использовать модели с частичным представлением в ASP.NET MVC2? - PullRequest
3 голосов
/ 15 ноября 2010

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

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

Требование

Хорошо, в Каркасах у нас много разных страниц, но с общей "сеткой".

Сетка будет частичным представлением и всегда будет отображать / потреблять / манипулировать одним и тем же типом данных.

Вопросы

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

Должны ли все Модели для видов, использующие это частичное представление, иметь вложенную модель для частичного представления в качестве свойства?

Что залучшая практика здесь?

круто, ура

1 Ответ

2 голосов
/ 15 ноября 2010

Я обнаружил, что, когда я собираю Частичное, очень помогает, если я рассмотрю, какой будет Модель для Частичного. Я почти всегда нахожу, что если я потрачу время на то, чтобы подумать об этом, то многократное использование частичного значительно возрастет.

Частичное обычно должно использовать некоторое естественное подмножество или вариацию данных в модели всего представления. Когда ваше создание Частичного начинается с этого, необходимость слишком много думать о том, «какую модель следует использовать при частичном использовании», часто свидетельствует о том, что, возможно, вам следует создать другой частичный элемент вместо того, чтобы пытаться использовать его повторно.

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

С учетом сказанного, хотя; Во многих случаях у меня есть Partial, который использует модель, которая кажется отделенной от модели всего представления. Но в большинстве случаев эти модели являются новыми / пустыми объектами, а не объектами, для которых требуется создание экземпляров и для которых установлены свойства и т. Д. (Это обычно происходит для Partials, которые используются в обновлениях, связанных с Ajax)

Обратите внимание, что в MVC2 тоже есть кое-что для этого; Html.RenderAction() позволяет вам вызывать совершенно новое действие (которое будет иметь собственную модель) и отображать его в текущем представлении. Я стараюсь избегать необходимости использовать его, собственно, на самом деле ... но для меня это будет лучше, чем пытаться "построить" какую-то новую модель для частичного или добавлять неестественную информацию в текущую модель представления.

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