По-видимому, проблема не имеет ничего общего с именем контроллера (т.е. ControllersController), а скорее с именем маршрута URL.
В моем Global.asax.cs я добавил пользовательскийМаршрут выглядит следующим образом:
public static void RegisterRoutes(RouteCollection routes)
{
//Route /controllers/ to /Home/Index
routes.MapRoute(
"Controllers",
"controllers/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Обратите внимание на пользовательские маршруты (называемые «Контроллеры») для маршрутов к HomeController (не ControllersController).
Я ожидаю, что когда браузер указывает на http://localhost/controllers, MVC вернет страницу / Home / Index.Вместо этого выдается ошибка 404.Однако маршрут завершается успешно, если браузер указывает на http://localhost/controllers/index. - это те же симптомы, которые я упоминал в начале этого поста.
Основываясь на этом тесте, я думаю, можно с уверенностью предположить, чтопроблема не в соглашении об именах контроллера, а в соглашении об именах маршрутизации MVC.
Чтобы продолжить создание моего приложения, я собираюсь изменить имя моего ControllersController на ControllerSystemsController,В то же время мне интересно узнать, почему маршрутизатор MVC не работает должным образом для маршрутов, которые используют «контроллеры» в качестве имени контроллера.Кто-нибудь может пролить свет на это?