MVC路由:将多个/分隔的项目定义为单个路由

时间:2014-12-11 10:51:52

标签: c# asp.net-mvc asp.net-mvc-routing

考虑以下MVC路由条目:

routes.MapRoute("Content", "content/{route}", new { controller = "Content", action = "ContentPage", route="" });

适用于:

www.domain.com/content/test
www.domain.com/content/blah

也适用于网址参数

www.domain.com/content/test?hello=1

不起作用:

www.domain.com/content/foo/bar
www.domain.com/one/two/three/four
  • 如何让我的路线接受/ foo / bar或/ one / two / three / 4 as {route}
  • 我如何做到以上并保持阅读网址的能力 控制器的参数?

1 个答案:

答案 0 :(得分:0)

试试这个,

routes.MapRoute("Content", "content/{route1}/{route2}", new { controller = "Content", action = "ContentPage", route1 = UrlParameter.Optional, route2 = UrlParameter.Optional });

注意:根据需要添加最大数量的可选参数。