Соглашение о контроллере таково, что маршрутизация может легко найти контроллер без дополнительной настройки. Добавление требуемого окончания контроллера снижает вероятность случайного показа объекта через маршрутизацию MVC.
Существует также встроенное соглашение для Views. По умолчанию представления должны находиться в папке, названной для вашего контроллера, и называться так же, как и вызывающее их действие, это то, что позволяет вызову метода View () в вашем действии работать без указания представления. Я все равно часто задаю себе представление, но если вы ищете соглашение, оно определенно поощряется фреймворком.
С точки зрения модели вы правы, стандартного соглашения не существует. Причина этого заключается в том, что ASP.NET MVC никогда не касается моделей напрямую. Требуется соглашение для контроллеров, чтобы найти их из маршрутизации, и соглашение для представлений, чтобы найти их из контроллеров ... но модели доступны только из логики в контроллере, поэтому инфраструктура не должна знать о них ,
При этом я видел, что большинство людей строят свои модели точно так же, как они строили свои сущности или модель предметной области до MVC. Если вы используете активный шаблон записи, назовите модели, соответствующие таблицам, на которые они отображаются; если вы больше фокусируетесь на домене, то назовите модели, соответствующие той части домена, которую они моделируют. Кроме того, я видел все больше и больше людей, создающих набор моделей представлений, которые просто используются для представления данных в пользовательском интерфейсе и создаются путем извлечения деталей из различных моделей в вашем домене. Модели, безусловно, являются наименее самоуверенной частью ASP.NET MVC, но это хорошая вещь, потому что люди предпочитают работать в этой области по-разному.