asp.net-mvc - route - forms asp net core
¿Cómo me deshago de Home en ASP.Net MVC? (6)
Simplemente cambie "Inicio" a una cadena vacía.
routes.MapRoute(
"Home",
"",
new { action = Index, controller = Home }
);
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?
Si está ejecutando en IIS 7, puede simplemente eliminar el archivo Default.aspx que viene con ASP.NET MVC (suponiendo que esté ejecutando la Vista previa 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 echa un vistazo:
http://haacked.com/archive/2008/04/10/upcoming-changes-in-routing.aspx y http://haacked.com/archive/2008/05/12/sp1-beta-and-its- effect-on-mvc.aspx
De hecho, me gusta tener todos mis métodos de control de inicio en la raíz del sitio. De esta manera: / about, / contact, etc. Supongo que soy exigente. Yo uso una restricción de ruta simple para hacerlo. Aquí está mi publicación en el blog con un ejemplo de código.
En IIS 7, puede simplemente eliminar el archivo Default.aspx que viene con ASP.NET MVC (suponiendo que esté ejecutando la Vista previa 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 echa un vistazo:
Próximos cambios en el enrutamiento y .NET 3.5 SP1 Beta y su efecto en MVC
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 con dos como Controlador / Acción. La desventaja ahora es que el controlador debe tener un índice explícito (/ Controller! = / Controller / Index), pero podría ayudarlo a usted u otros.
routes.MapRoute(
"Default",
"{action}",
new { controller = "Home", action = "Index" }
);
routes.MapRoute(
"Actions",
"{controller}/{action}",
new { }
);