He agregado 3 controladores, y para uno de ellos la vista de índice no funciona de manera predeterminada.MVC Controller Index a veces 404?
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) Creé una biblioteca de clase de entidad de marco, generada a partir de una base de datos que contiene una tabla de Empleados y Empresas.
2) Creó un proyecto vacío MVC 3.
3) Se ha agregado una referencia de proyecto del proyecto MVC al proyecto de biblioteca de clase EF.
4) Añadido un controlador, y en el diálogo de controlador add I eligió el modelo EF y una de las mesas y nombrado el controlador CompaniesController
5) Entonces recordé que necesitaba un HomeController, lo que añade otro controlador , nombrándolo HomeController, y de nuevo elegimos la entidad Empresas.
6) Finalmente agregué un EmployeesController que seleccionaba la entidad Employees.
Ésta es la única ruta en mis Global.asax.cs:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
¿Por qué no el defecto http://localhost:1767/Companies/ URL para la acción index como todos los otros controladores? He hecho algunos proyectos de MVC de práctica y parece que siempre tengo este problema. El controlador de Empleados que está en default, funciona bien, aunque no haya una ruta que le indique que haga esto.
Editar: Aquí está el error que recibo:
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/
Editar: Así que por lo general no revelan los nombres de mis entidades o detalles del dominio cuando se publican ejemplos en línea, pero en este caso se llama realmente Empresas Propiedades y cambiar el nombre a Propiedades2 para la carpeta de vista y el controlador corrigió el problema. Por lo tanto, parece que Properties es una palabra clave especial que rompe el valor predeterminado en Index si aparece en una URL
creo que podría ser debido a que las propiedades es AssemblyInfo.cs la celebración de carpeta estándar (plantilla de proyecto) . Debería haber sido un mensaje de error 4XX, no estoy seguro de por qué recibió 404. – Lokeshwer
Bingo ... tenía EXACTAMENTE este problema. –