MVC3路由:将路径的一部分作为“路径”参数传递

时间:2011-03-11 14:44:11

标签: .net asp.net-mvc

假设我有一个像

这样的动作
public ActionResult TheAction(string path) { ... }

我想做的是让像www.myapp.com/controller/TheAction/path/to/content这样的请求将路径的“path / to / content”部分作为“path”参数传递给动作。

我的猜测是,我必须摆弄一个自定义路线/请求处理程序,但在戴上复合器的手套之前,我想看看你们是否有任何其他建议。

1 个答案:

答案 0 :(得分:6)

只需在路线注册中注册/{controller}/{action}/{*path}

这使得最后一个参数成为一个全能,所以它将包含路径的其余部分,就像你想要的那样。

所以它看起来像:

        routes.MapRoute(
            "HasCatchAllPath", 
            "{controller}/{action}/{*path}", 
            new { controller = "Home", action = "Index" }  
        );