Мне кажется смешным, что MVC не распознает контроллер, если у него нет "Контроллера", добавленного к имени класса. Этот ответ упоминает ControllerDescriptor
и ControllerTypeCache
как два места в MVC, где это соглашение настроено.
Мой вопрос - почему? Это явно не соглашение о конфигурации, так как IsControllerType
в ControllerTypeCache
проверяет, что класс:
- Является общедоступным
- Не абстрактно
- Реализует
IController
- Заканчивается
"Controller"
Кто-нибудь знает причину этого? После того, как все контроллеры, вероятно, будут в реальном проекте MVC, в папке с именем "Контроллеры", а простой двойной щелчок по файлу покажет нам, что класс наследует Controller
.
Просто мне кажется глупым, но мне было интересно, существует ли фактическая причина, по которой они это сделали.
ИЗМЕНИТЬ
Только что увидели этот пост в блоге от Фила Хаака со вчерашнего дня, где он обсуждает решение этого соглашения - он имеет одинаковую мысль обо мне - Наверное, немного бессмысленно!