Почему контроллеры MVC должны иметь конечное соглашение «Контроллер» в имени своего класса?
Мне кажется смешным, что MVC не распознает контроллер, если у него нет «Контроллера». добавляется к имени класса.Этот ответ упоминаетControllerDescriptor
а такжеControllerTypeCache
как два места в MVC, где это соглашение установлено.
Мой вопрос почему? Это явно не соглашение о конфигурации, так какIsControllerType
вControllerTypeCache
проверяет, что класс:
IController
Ends with "Controller"
Кто-нибудь знает причину этого? После того, как все контроллеры, вероятно, будут в реальном проекте MVC, в папке с именем «Контроллеры», и простой двойной щелчок по файлу покажет нам, что класс наследуетController
.
Просто кажется мне глупым - но мне было интересно, если естьactual Причина, по которой они это сделали.
EDIT
Только что виделэтот блог Фил Хаак со вчерашнего дня, где он обсуждает решение этой конвенции - он того же мнения обо мне - возможно, немного бессмысленно!