Почему контроллеры ASP.NET MVC основаны на именах? - PullRequest
7 голосов
/ 05 ноября 2008

В ASP.NET MVC нам необходимо использовать суффикс «Контроллер» для всех контроллеров. Это кажется излишне ограничительным - есть ли техническая причина для этого?

Мне в основном просто любопытно, но я вижу ситуации, когда более гибкие правила именования могут улучшить организацию кода. Разве нельзя было легко обнаружить возможные классы контроллеров, используя рефлексию для поиска Controller производных классов? Или требовать, чтобы классы контроллера были помечены ControllerAttribute?

Ответы [ 2 ]

14 голосов
/ 05 ноября 2008

Сообщество MVC находится под сильным влиянием Ruby on Rails , которое ценит " соглашение по конфигурации ". При последовательном присвоении имен приложение может работать с нулевой конфигурацией.

3 голосов
/ 06 ноября 2008

Одним из преимуществ этого соглашения является то, что обычно сегмент URL, контроллер и класс модели имеют одно и то же имя.

URL: / product / Контроллер: Продукт: Контроллер Модель: Продукт

Это может вызвать конфликт имен. Поэтому мы договорились, что имена контроллеров будут дополнены суффиксом «Controller», чтобы избежать этого конфликта. Однако вы можете изменить это поведение с помощью наших API расширяемости.

...