Default route for root path using asp.net attribute routing

gzak picture gzak · Sep 26, 2013 · Viewed 9.7k times · Source

I'm using attribute routing from ASP.NET 5 RC, included in the Visual Studio 2013 RC release.

I'd like for the root path, /, to lead to the canonical /Home/Index path, but I can't find a way to do this with just attribute routes. Is it possible, and if not, how would I do it if I'm also using OWIN SelfHost? In other words, I'm setting up my own HttpConfiguration class manually in the WebApp.Start<T> method (where T has a Configure(IAppBuilder) method invoked at startup) and not going through the RouteTable.Routes object. Or should I be going through the RouteTable.Routes object? I haven't had much luck with that when I tried it...

EDIT: Here's what I've tried so far:

// normal Web API attribute routes
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
   name: "DefaultWeb",
   routeTemplate: "{controller}/{action}",
   defaults: new { controller = "Home", action = "Index" }
);

The second try below looks a little dubious, since it's not clear how my HttpConfiguration object is related to the static RouteTable.Routes object:

// normal Web API attribute routes
config.MapHttpAttributeRoutes();

RouteTable.Routes.MapRoute(
   name: "DefaultWeb",
   url: "{controller}/{action}",
   defaults: new { controller = "Home", action = "Index" }
);

Answer

Jay Douglass picture Jay Douglass · Nov 10, 2013

You can set the default route for the app like this:

    [Route("~/", Name = "default")]
    public ActionResult Index() {
        return View();
    }