В настоящее время я работаю над небольшим проектом MVC 2, и количество контроллеров, которые у нас есть со связанными представлениями и моделями представления, становится довольно большим.Чтобы попытаться немного отделить друг от друга, я рассмотрел использование функции областей MVC 2 и соответствующим образом рефакторинг проекта.
Одна из проблем, с которыми я сталкиваюсь, заключается в том, что у нас есть иерархия наследования для наших контроллеров вДля того, чтобы поделиться функциональностью и свойствами, которые мы используем в конкретных контроллерах, которые затем предоставляют необходимые действия, с которыми мы хотим иметь дело.
По сути, в настоящее время у нас есть такая настройка в папке основных контроллеров:
Controller (MVC)
+-- BaseController (Abstract)
+-- BaseWorkController (Abstract)
+-- BaseWorkAController (Abstract)
+-- ... a number of controllers exposing actions
+-- BaseWorkBControllers (Abstract)
+-- ... a number of controllers exposing actions
Я подумываю создать Области для каждого рабочего контроллера, т. Е.
- Площадь / РабочаяA
- Область / Рабочая область
Каждая область будет иметь свою связаннуювиды и модели представления и даже модели.
Однако проблема, с которой я, похоже, сталкиваюсь, заключается в том, где разместить BaseWorkController.Можно ли оставить это в главной папке контроллеров, а контроллеры области просто включают ссылку на этот контроллер.Кроме того, для кода в разных областях может потребоваться доступ к различным моделям и даже к некоторым атрибутам, которые мы создаем для определенных функций.
Кажется ли эта настройка приемлемым использованием областей.Из того, что я прочитал, кажется, что области помогают разделить проблемы и функциональность, что я и ищу.Однако я не хочу вкладывать средства в это, если это полное неправильное использование функциональности?
Допустимо ли, чтобы код контроллера использовал функциональность из других областей или из основных папок контроллера / модели / вида.