Итак, я создаю веб-страницу с использованием MVC3, которая должна быть легко настраиваемой. Например, возьмите страницу IMDB телешоу. Он состоит из нескольких компонентов (далее называемых виджетами): информация заголовка, список актеров, список эпизодов, случайные пустяки, список цитат, предварительный просмотр форума и т. Д.
Допустим, я создавал клон IMDB, и в зависимости от типа страницы (фильм, телешоу, актер) вы показываете разные виджеты. Кроме того, пользователь может изменить настройки, чтобы добавить или удалить определенные виджеты с каждого типа страниц.
В моем проекте это так, что контроллер для основного представления передает коллекцию "моделей представления виджетов", которая содержит информацию, необходимую для получения информации, необходимой для каждого отдельного виджета. Таким образом, он предоставит идентификатор (для получения информации из базы данных), контроллер и действие.
Внутри основного представления он просматривает этот список моделей представлений виджетов и вызывает html.partial для частичного представления универсального контейнера виджетов, который содержит общий HTML и JavaScript / jQuery для каждого виджета и передает отдельную модель представления виджета в это частичное представление.
Внутри этого частичного представления, в div содержимого контейнера общего виджета, он вызывает другую html.action, чтобы получить конкретное частичное представление виджета, вызывая конкретное действие контроллера, которое получает информацию по полю id поля модель представления виджета.
Примечания к скале: Список объектов метаданных -> основной вид. Каждый объект метаданных -> общий частичный вид. Частичное представление -> другое частичное представление для получения данных с использованием метаданных.
Итак, теперь, когда вы прочитали все это, у меня есть два вопроса:
Какова стоимость, связанная с наличием нескольких вызовов html.partial в главном представлении, причем каждое частичное представление вызывает html.action?
Это хороший, логичный дизайн?