在MVC中获取所有以-2结尾的网址

时间:2018-07-31 19:01:06

标签: c# asp.net-mvc routes

我想将我的应用程序中所有以-2结尾的URL重定向到一个特定的动作,我列出了它们的列表,但是我不想对routes.MapRoute()进行其他调用以-2结尾的所有不同网址。相反,我想使用正则表达式将它们映射到该特定操作,但我对正则表达式没有丰富的经验。我正在尝试做这样的事情:

  routes.MapRoute(
            "OldUrls",
            "{*path}",
            new { controller = "Redirect", action = "RedirectToUrl" },
            new { path = @".*-2"},
            new[] { "Application.Controllers" });
    }

1 个答案:

答案 0 :(得分:1)

如果您只想查找以-2结尾的字符串,则您甚至不需要Regex

只需:

if (url.EndsWith("-2"))
{

}

如果您必须使用Regex,那么

path = @".*-2$"

说明:

  • .* =零个或多个字符。
  • -2 =完全匹配-2
  • $ =匹配字符串的结尾。

也:

建议使用

Uri.IsWellFormedUriString(YourURLString, UriKind.RelativeOrAbsolute)

如果从未验证过您的URL,则进行验证。