Я добавил 3 контроллера, и для одного из них представление индекса по умолчанию не работает.
Works(shows index):
http://localhost:1767/Employees/
http://localhost:1767/Employees/Index
http://localhost:1767/Home/
http://localhost:1767/Home/Index
http://localhost:1767/
http://localhost:1767/Companies/Index
Doesn't work(gives 404 error):
http://localhost:1767/Companies/
1) Я создал библиотеку классов платформы сущностей, сгенерированную из базы данных, содержащей таблицу Employees and Companies.
2) Создан пустой проект MVC 3.
3) Добавлена ссылка на проект из проекта MVC в проект библиотеки классов EF.
4) Добавлен контроллер, и в диалоге добавления контроллера я выбрал модель EF и одну из таблиц и назвал контроллер CompaniesController
5) Потом я вспомнил, что мне нужен HomeController, поэтому я добавил еще один контроллер, назвав его HomeController, и снова выбрал объект Companies.
6) Наконец, я добавил EmployeesController, выбрав сущность Employees.
Это единственный маршрут в моем Global.asax.cs:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
Почему URL http://localhost:1767/Companies/ не используется по умолчанию для действия индекса, как все остальные контроллеры? Я выполнил несколько практических проектов MVC и, похоже, всегда сталкиваюсь с этой проблемой. Контроллер Employees, установленный по умолчанию на Index, работает нормально, даже если нет маршрута, который предписывает ему это делать?
Редактировать: вот ошибка, которую я получаю:
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /Companies/
Редактировать: Поэтому я обычно не раскрываю имена своих сущностей или сведения о домене при публикации примеров в Интернете, но в этом случае Компании действительно называли Свойствами, и изменение имени на Свойства2 для папки представления и контроллера устранило проблему , Таким образом, кажется, что Properties - это специальное ключевое слово, которое нарушает значение по умолчанию Index, если оно появляется в URL