Как уже было сказано, ASP.NET MVC использует соглашение о конфигурации. Из вашей коробки структура папок выглядит примерно так (только показывает соответствующие части и делает это из памяти, так что ...)
Сайт Root
+ Controllers
HomeController.cs
AccountController.cs
+ Views
+ Home
Index.aspx
+ Account
Index.aspx
+ Shared
Обработчик маршрутизации по умолчанию выглядит примерно так:
"{controller}/{action}/{id}"
Существуют значения по умолчанию для маршрута, но если у вас есть URL, который является / b / c, он будет искать действие a на контроллере aController и передает его в качестве параметра, если указанный метод на контроллере принимает параметры.
Несколько вещей об этом нужно уточнить. Снова, соглашение по конфигурации:
1) Все классы контроллеров должны заканчиваться контроллером, если вы используете движок по умолчанию. Таким образом, когда поступает запрос и анализируется значение {controller}, движок добавляет к нему контроллер, просматривает папку контроллера (и, следовательно, пространство имен) и находит класс.
2) По умолчанию - это можно изменить - все представления для контроллера должны находиться в папке Views / {controller} или в папке Views / Shared.
3) Публичные методы на контроллере по умолчанию являются действиями. Вы можете скрыть это с помощью атрибута, чтобы сделать метод недоступным для движка, но по умолчанию они общедоступны.
Таким образом, когда запрос поступает в маршрут, сравнивается со всеми известными маршрутами (global.asax), и первый маршрут, соответствующий запросу, принимается. Затем маршрут разбирается на составные части, чтобы определить контроллер, действие и параметры для действия.
Как только контроллер идентифицирован, механизм создает экземпляр этого контроллера и выполняет соответствующий метод (действие), если он найден.
Действие вернет ActionResult. View - это метод extensino, который на самом деле возвращает ViewResult (если я правильно помню). Представлением по умолчанию для действия является представление с тем же именем, что и у действия, находящегося в папке Views / {ControllerName}.
Маршрутизация - это зверь сам по себе, и я бы посоветовал почитать его, если вы собираетесь поиграть с ним. Минуты, чтобы понять, но жизнь, чтобы овладеть вещью Сорта.
Насколько я знаю, кстати, нет движка, который будет использовать страницу php как представление для действия контроллера.