2017-09-13 140 views
1

我想要一条匹配“/”,“/ Home”和“/ Home/Index”但不是“Home/Other”而不是“/ Other”的路线。路由,路由中的可选文字?

有没有更好的方法比有三个路由表条目?我想要的东西像默认机制,但只适用于文字而不是参数。

任何好主意?

回答

0
routes.MapRoute(
      name: "default", 
      template: "{controller:regex(^(Home)$)}/{action:regex(^(Index)$)}", 
      defaults: new { controller = "Home", action = "Index" }); 

这个代码将只捕获//Home/Home/Index路线。如果你只想避免在路由中捕捉“其他”,然后将正则表达式替换为^(?!Other).*$

+0

我认为可能有更好的方法,但正则表达式很好,我猜。 –