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")]