route parameter net attribute asp asp.net-mvc asp.net-mvc-routing self-hosting visual-studio-2013 owin

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