asp.net-mvc - parameter - route()]
Ruta predeterminada para la ruta raĆz usando el enrutamiento de atributos asp.net (2)
Puede establecer la ruta predeterminada para la aplicación de esta manera:
[Route("~/", Name = "default")]
public ActionResult Index() {
return View();
}
Estoy usando el enrutamiento de atributos de ASP.NET 5 RC, incluido en la versión de Visual Studio 2013 RC.
Me gustaría que la ruta raíz, / , conduzca a la ruta canónica /Home/Index , pero no puedo encontrar la manera de hacerlo con solo las rutas de los atributos. ¿Es posible, y si no, cómo lo haría si también estoy usando OWIN SelfHost? En otras palabras, estoy configurando mi propia clase HttpConfiguration manualmente en el WebApp.Start<T> (donde T tiene un método Configure(IAppBuilder) invocado al inicio) y no pasa por el objeto RouteTable.Routes . ¿O debería pasar por el objeto RouteTable.Routes ? No he tenido mucha suerte con eso cuando lo intenté ...
EDITAR: Esto es lo que he intentado hasta ahora:
// normal Web API attribute routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultWeb",
routeTemplate: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
El segundo intento a continuación parece un poco dudoso, ya que no está claro cómo mi objeto HttpConfiguration está relacionado con el objeto estático RouteTable.Routes :
// normal Web API attribute routes
config.MapHttpAttributeRoutes();
RouteTable.Routes.MapRoute(
name: "DefaultWeb",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
Para cualquiera que esté utilizando .NET Core 1.x, necesitará hacer esto y usar la respuesta de Jay anterior.
En su archivo Startup.cs, agregue esto a su método Configure .
app.UseMvcWithDefaultRoute();
Luego, cualquier acción del controlador que desee como valor predeterminado, coloque el atributo [Route("", Name = "default")]