现在我有一个匹配的地图路线
foreach(var subcat in Sports.Categories)
{
routes.MapRoute("MultiRoute" + i, subcat+"/{title}",
new { controller = "Routing", action = "Redirect", category = subcat });
}
我有一些体育类别:棒球,足球,篮球等,但我也希望将篮球与篮球比赛,篮球比赛,前10名篮球等比赛......
这意味着我必须允许subcat在之前和之后都有一个通配符,因为BasketBall-Plays包含单词Basketball,我希望它重定向到那里。
如何为地图路由做一个包含部分?
编辑:TLDR :我有一个名为basketball的子命令,但我希望匹配每个包含篮球一词的网址。所以篮球比赛/前10名应该打篮球/前10名
尝试:
foreach(var subcat in Sports.Categories)
{
routes.MapRoute("MultiRoute" + i, subcat+"/{title}",
new { controller = "Routing", action = "Redirect", category = subcat }),
new{sub = ".*"+sub+".*" });
}
答案 0 :(得分:4)
如果我理解正确,以下内容应该有效,
var subCategories = new[] { "Soccer", "BasketBall", "Golf" };
foreach (var subcat in subCategories)
{
routes.MapRoute(subcat, "{subcat}/{title}",
new {controller = "Routing", action = "Redirect", category = subcat},
new { subcat = @".*\b" + subcat + @"\b.*" });
}
它将路由
希望这会有所帮助。