Search code examples
asp.net-mvc-3urlmaproute

MVC3 MapRoute, parameter with slashes


How would i create a MapRoute that accepts slashes without considering it a new parameter? If the url is

http://localhost/root/p1/default.aspx

I want one parameter to pick up everything after localhost (root/p1/default.aspx). Normally it would take three parameters for this because there are two slashes, and maproute separates the parameters by slash. So if the route looks something like

routes.MapRoute(
   "URLMapRoute",
   "{path}",
   new { controller = "Home", action = "Index", path = "default.aspx" }
);

then {path} picks up everything, even though the url contains slashes.


Solution

  • You could use a catchall route:

    routes.MapRoute(
        "URLMapRoute",
        "{*path}",
        new { controller = "Home", action = "Index", path = "default.aspx" }
    );
    

    and then:

    public ActionResult Index(string path)
    {
        ...
    }