ASP MVC баннер-ротатор - PullRequest
       6

ASP MVC баннер-ротатор

0 голосов
/ 24 января 2011

Для моего сайта я хочу внедрить элемент управления баннером, который будет в левой части сайта.Баннеры будут храниться в формате HTML в базе данных, и каждый из них будет иметь рейтинг.Затем, используя рейтинг, каждый из них будет иметь количество вхождений (в процентах).

  1. Как вы думаете, существует ли реальное решение поместить весь этот поток в отдельную DLL?Это даже возможно в архитектуре MVC.Я бы предпочел сделать это как частичное представление и иметь все в отдельном dll частичное представление и уровень доступа к данным.Считаете ли вы, что это хорошее решение?

  2. Каков ваш подход, когда вам нужно реализовать «пользовательский контроль» (частичное представление) ... вы размещаете его на веб-сайтепроект или отдельный проект?

  3. Есть ли другой способ реализовать это вместо частичного представления?

Спасибо, Раду

1 Ответ

2 голосов
/ 24 января 2011

Есть несколько вариантов, которые у вас есть -

  1. сделать это как HtmlHelper расширение. Вероятно, не идеально подходит для такого рода вещей, поскольку управление отображаемыми баннерами и связанной с ними логикой действительно является задачей баннерного компонента / виджета / частичного.

  2. Сделайте это как частичное представление и используйте Html.RenderPartial(object Model) для его вызова. Теперь логика находится в частичном представлении, но может также существовать некоторая логика приложения, которая не должна действительно идти в представление и действительно принадлежит модели или контроллеру. Кроме того, в конечном итоге вы можете передать модели с толстым видом на основной вид, которые также должны нести модель вида для каждой части, отображаемой на главном виде. Я думаю, что в некоторых ситуациях это не идеально, особенно когда данные в моделях представления для частичек не имеют ничего общего с данными для основного представления. Что приводит нас к ...

  3. Выполните это как дочернее действие со связанным контроллером и частичным представлением. Логика будет красиво инкапсулирована в контроллере, а частичное представление просто отобразит все, что было передано из BannerController.

Вы, конечно, можете поместить это в отдельную сборку и настроить как Переносная область . Таким образом, вы можете встроить частичные виды в сборку, и для повторного использования виджета достаточно просто отбросить сборку в папке bin и сослаться на нее в своем основном проекте приложения (возможно, вам также потребуется настроить некоторую конфигурацию) ,

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

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

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