Spo*_*oks 3 c# regex routing asp.net-mvc-routing asp.net-mvc-3
现在我有一个匹配的地图路线
foreach(var subcat in Sports.Categories)
{
routes.MapRoute("MultiRoute" + i, subcat+"/{title}",
new { controller = "Routing", action = "Redirect", category = subcat });
}
Run Code Online (Sandbox Code Playgroud)
我有一些体育类别:棒球,足球,篮球等,但我也想将篮球与篮球比赛,篮球集锦,十大篮球等等进行匹配。
这意味着我必须允许subcat之前和之后都具有通配符,因为BasketBall-Plays包含篮球一词,所以我希望它重定向到那里。
如何为地图路由创建包含部分?
编辑:TLDR:我有一个名为篮球的子猫,但我想匹配每个带有单词篮球的URL。所以篮球比赛/前10名应该真正打篮球/前10名
尝试过:
foreach(var subcat in Sports.Categories)
{
routes.MapRoute("MultiRoute" + i, subcat+"/{title}",
new { controller = "Routing", action = "Redirect", category = subcat }),
new{sub = ".*"+sub+".*" });
}
Run Code Online (Sandbox Code Playgroud)
如果我正确理解,以下方法应该有效,
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.*" });
}
Run Code Online (Sandbox Code Playgroud)
它将路由
希望这可以帮助。