【发布时间】:2018-06-02 23:24:57
【问题描述】:
有什么方法可以使用 routeattribute 来创建 catch all 路由吗?
在我的网站中,我有预定义的路线,例如 /汽车 /保险/最佳
但是,由于我们有一个带有动态菜单和页面 url 的 CMS,我需要一条带有无限斜线的全部路径。
所以如果我导航到 /whatever/this/is/a/menupath/withapage.html 它应该转到我的 Page 方法。 withapage.html 应该不是必需的。
我尝试了以下路线,但它不起作用
[Route("{*menuPath}/{pageUrl.html?}")]
public async Task<IActionResult> Page(string menuPath, string pageUrl = null, CancellationToken token = default(CancellationToken))
在 MVC 5 中,我们将此设置与 GreedyRoute 一起使用:
routes.Add(
new GreedyRoute("{*menuPath}/{pageUrl}",
new RouteValueDictionary(new { controller = "Page", action = "Index" }),
new RouteValueDictionary(new { pageUrl = @"[0-9a-zA-ZøæåØÆÅ+_-]+.html" }),
new MvcRouteHandler()));
routes.Add(
new GreedyRoute("{*menuPath}",
new RouteValueDictionary(new { controller = "Page", action = "List" }),
new MvcRouteHandler()));
dotnet core 2 中有类似的东西吗?
【问题讨论】: