Какие шаблоны я должен рассмотреть для генератора HTML-виджетов? - PullRequest
0 голосов
/ 27 марта 2010

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

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

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

Спасибо

Ответы [ 2 ]

1 голос
/ 27 марта 2010

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

0 голосов
/ 27 марта 2010

Я бы посмотрел на использование PartialViews для большей части макета вашего виджета, вот как я это делаю. У меня есть PartialView для самого виджета, затем каждый конкретный виджет реализует PartialView для своего содержимого. Моя модель содержит набор моделей виджетов. Каждая модель виджета содержит информацию о своем размещении на странице - зоне и порядке - и о том, какое представление будет отображаться для ее содержимого. Рендеринг вида, который я размещаю, помещает виджеты в сетку с использованием информации о зоне и порядке и отображает общий виджет частичного с каждой отдельной моделью виджета, так как это модель для частичного. Частичный виджет использует данные в виджете, чтобы выбрать частичный контент для этого виджета. Этот частичный контент строго типизирован для модели представления этого виджета и использует данные из модели виджета напрямую. Чтобы заставить его работать, модель виджета предоставляет модель представления как универсальное свойство объекта, чтобы частичная часть виджета могла передавать данные модели частичной части содержимого.

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