На главной странице моего сайта я хотел бы показать несколько представлений, которые полагаются на собственные контроллеры для извлечения данных. Я не хочу ничего извлекать из DAL в моем домашнем контроллере.Оказание нескольких видов из нескольких контроллеров на одной странице
Например, я хочу, чтобы показать вид списка топа-5 новостей, вид со случайной цитатой из базы данных, другой вид с пользователями содержимого корзины покупок и т.д.
После погуглить вокруг, я нашел RenderAction
метод, который почти идеально, но он недоступен в RC1, только в Futures, и, по-видимому, у него есть некоторые проблемы.
Я также нашел RenderPartial
, но он полагается на главный контроллер для передачи данных на вид.
Дополнительные разъяснения:
Основная причина, почему я не хочу логику доступа к данным в главном контроллере, чтобы избежать повторения кода и логики. Я буду использовать топ-5 новостей на нескольких страницах/контроллерах. Я не хочу повторять поиск данных в каждом из них. Я уже разделил много логики и проверки на бизнес-уровень. Решение, которым я занимаюсь, это RenderAction или UserControls, как в классическом ASP. Я знаю, что могу использовать их и в MVC, но ... в чем смысл? Я имею в виду, если то, что я прошу, слишком сложно или слишком абсурдно (многократно используемые компоненты пользовательского интерфейса), тогда MVC определенно не для меня, и я считаю, что он серьезно уступает классическому ASP.NET, потому что это требование действительно простое.
Dogmatic? Я просто пытаюсь не повторять много кода вокруг ... – mitch
Ну, тогда за дизайном есть решение для дизайна. Попробуйте создать еще один слой между контроллером и DAL, возможно, BLL. –