Aquí son los pasos para el nombre Separar el controlador de HomeController
Paso 1: crear la restricción de ruta.
public class RootRouteConstraint<T> : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
var rootMethodNames = typeof(T).GetMethods().Select(x => x.Name.ToLower());
return rootMethodNames.Contains(values["action"].ToString().ToLower());
}
}
Paso 2:
agregar una nueva asignación de rutas por encima de su asignación predeterminada que utiliza la restricción de ruta que acabamos de crear. El parámetro genérico debe ser la clase de controlador que planea usar como su controlador "Root".
routes.MapRoute(
"Root",
"{action}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { isMethodInHomeController = new RootRouteConstraint<HomeController>() }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Ahora usted debería ser capaz de acceder a sus métodos de controlador de casa, así: example.com/about, example.com/contact
Esto sólo afecta HomeController. Todos los demás controladores tendrán la funcionalidad de enrutamiento predeterminada.
Compruebe que el siguiente enlace ayudará a [Cómo eliminar el nombre del controlador de la url usando la ruta en MVC] (https://stackoverflow.com/questions/34650332/how-to-remove-the-controller-name-from- the-url-using-rout-in-mvc/34653793 # 34653793). –
VER ACTUALIZACIÓN DE 2016 EN INFERIOR – niico