Я добавил 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) Я создал библиотеку классов инфраструктуры сущностей, созданную из база данных, содержащая таблицу сотрудников и компаний.
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
Почему не http: // localhost: 1767 / Компании / URL по умолчанию для действия индекса, как и все другие контроллеры? Я выполнил несколько практических проектов MVC и, похоже, всегда сталкивался с этой проблемой. Контроллер сотрудников, по умолчанию настроенный на индекс, работает нормально,даже при том, что нет маршрута, который велит ему это сделать?
Edit: Вот ошибка, которую я получаю:
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/
Edit: Поэтому я обычно не раскрываю имена своих сущностей или детали домена при размещении примеров в Интернете, но в этом случае «Компании» на самом деле назывались «Свойства», и изменение имени на «Свойства2» для папки просмотра и контроллера устранило проблему. Таким образом, кажется, что Properties - это специальное ключевое слово, которое нарушает значение индекса по умолчанию, если оно появляется в URL-адресе