Полные ASP.NET MVC контроллеры - PullRequest
0 голосов
/ 12 марта 2010

Я читал о "жирных контроллерах", но большинство статей посвящено извлечению логики уровня обслуживания / репозитория из контроллера. Однако я столкнулся с другой ситуацией, и мне интересно, есть ли у кого-нибудь идеи по улучшению.

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

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

Любой совет?

Cheers, Мош

Ответы [ 2 ]

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

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

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

Для всех ваших вкладок вы можете использовать одно действие, которое имеет параметр вкладки, который указывает, какие данные вам нужно вернуть.

Задача контроллера - преобразовать эту вкладку string в переменную типа enum. Затем вкладка будет отправлена ​​в хранилище, а задание хранилища должно вернуть данные в ответ на значение вкладки.

Контроллер должен выполнять свою работу через службы: Input Validator и Mapper.

Задача службы сопоставления состоит в том, чтобы отобразить пользовательский ввод (обычно строки) в фактическое введенное значение (int, System.DateTime, типы перечислений и т. Д.).

Работа валидатора заключается в проверке правильности ввода.

Следование этим принципам должно сделать ваши контроллеры действительно маленькими.

...