2011-03-11 65 views
3

比方说,我有一个像MVC3路由:传递路线的一部分作为“路径”参数

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

我想要做的是一个动作,有一个像www.myapp.com/controller的请求/ TheAction/path/to/content传递路径的“路径/到/内容”部分作为动作的“路径”参数。

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

+0

+1为“Complicator的手套”的声明 - 那真棒 – CmdrTallen 2011-03-12 16:16:59

回答

6

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

这使最后一个参数成为全部,因此它将包含路径的其余部分,就像您想要的一样。

所以看起来像:

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

感谢堆,我需要的。 – JoseMarmolejos 2011-03-11 16:27:10