在 ASP.NET 网页项目(不是 Web 窗体,不是 MVC)中,我使用的是 Mike Brind 的 More Flexible Routing For ASP.NET Web Pages .
我想创建一条路线,它可以拾取任意数量的路线元素,但以特定单词结尾,例如:
- mydomain.com/route1/word
- mydomain.com/route1/route2/word
- mydomain.com/route1/route2/route3/word
- ...等等
我尝试在映射路线时使用通配符,但这不起作用,例如:
RouteTable.Routes.Ignore("{*routes}/word");
有没有办法映射这些可能性的路线,或者我是否必须为每种可能性创建一条路线,例如:
RouteTable.Routes.MapWebPageRoute("{route1}/word", "~/mypage.cshtml");
RouteTable.Routes.MapWebPageRoute("{route1}/{route2}/word", "~/mypage.cshtml");
RouteTable.Routes.MapWebPageRoute("{route1}/{route2}/{route3}/word", "~/mypage.cshtml");
- ...等等
最佳答案
我最终找到了解决这个问题的方法。
RouteTable.Routes.MapWebPageRoute("{*routes}",
"~/mypage.cshtml",
constraints: new { routes = @".*(/word)" });
所以使用约束就是答案。
关于razor - 使用 MapWebPageRoute 映射路由时使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132761/