¿Cómo me deshago de Inicio en ASP.Net MVC?
-
08-06-2019 - |
Pregunta
Sé que este sitio está escrito usando ASP.Net MVC y no veo "/Home" en la URL.Esto me demuestra que se puede hacer.¿Qué ruta especial y necesito?
Solución
Simplemente cambie "Inicio" por una cadena vacía.
routes.MapRoute(
"Home",
"",
new { action = Index, controller = Home }
);
Otros consejos
Si está ejecutando IIS 7, simplemente puede eliminar el archivo Default.aspx que viene con ASP.NET MVC (suponiendo que esté ejecutando Preview 3 o superior).Ese archivo era necesario debido a un problema con Cassini que se solucionó en .NET 3.5 SP1.Para más detalles consulte:
http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspxyhttp://haacked.com/archive/2008/05/12/sp1-beta-and-its-effect-on-mvc.aspx
De hecho, me gusta tener todos los métodos de mi controlador doméstico en la raíz del sitio.Como esto:/acerca de, /contacto, etc.Supongo que soy exigente.Utilizo una restricción de ruta simple para hacerlo. Aquí está la publicación de mi blog con un código de muestra.
Yo agregaría
routes.MapRoute("NoIndex", "{action}", new { controller = "Home", action = "Index" });
en RouteConfig.cs
Esto es lo que hice para deshacerme de Home.Tratará todas las rutas con un solo especificador como Inicio/Acción y cualquiera que tenga dos como Controlador/Acción.La desventaja es que ahora el controlador debe tener un índice explícito (/Controller != /Controller/Index), pero podría ayudarle a usted o a otras personas.
routes.MapRoute(
"Default",
"{action}",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Actions",
"{controller}/{action}",
new { }
);
En IIS 7, simplemente puede eliminar el archivo Default.aspx que viene con ASP.NET MVC (suponiendo que esté ejecutando la versión Preview 3 o superior).Ese archivo era necesario debido a un problema con Cassini que se solucionó en .NET 3.5 SP1.
Para más detalles consulte:
Próximos cambios en la ruta y .NET 3.5 SP1 Beta y su efecto en MVC