5
votes

I'm using ASP.NET MVC 4, .NET 4.5. Any way, besides creating individual controllers for each "action", to have "controller-less" urls?

What I mean is, have a Home controller filled with actions. Urls such as:

  • site.com/Home/About
  • site.com/Home/Contact

to become

  • site.com/About
  • site.com/Contact

but still use the Home controller.

1

1 Answers

7
votes

You can define routes that don't contain the controller name like this:

routes.MapRoute(
    "About",                                       // Route name
    "About/",                                      // URL with parameters
    new { controller = "Home", action = "About" }  // Parameter defaults
);

routes.MapRoute(
    "Contact",                                       // Route name
    "Contact/",                                      // URL with parameters
    new { controller = "Home", action = "Contact" }  // Parameter defaults
);