MVC3 MapRoute,带斜杠的参数

Ant*_*and 4 url maproute asp.net-mvc-3

我如何创建一个接受斜杠而不考虑新参数的MapRoute?如果网址是

http://localhost/root/p1/default.aspx
Run Code Online (Sandbox Code Playgroud)

我想要一个参数来获取localhost(root/p1/default.aspx)之后的所有内容.通常它需要三个参数,因为有两个斜杠,maproute用斜杠分隔参数.所以,如果路线看起来像

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

然后{path}获取所有内容,即使url包含斜杠.

Dar*_*rov 8

你可以使用一个catchall路线:

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

然后:

public ActionResult Index(string path)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)