是否有一种简单的方法可以在route.maproute中定义查找值?
示例路线:
routes.MapRoute(
name: "example route",
url: "product/{subcat}",
defaults: new { controller = "Redirect", action = "ProcessPage"}
);
其中:{subcat}只能是以下值:subcat1,subcat2,subcat3
我正在尝试将旧网站的重定向写入新网站(无法使用IIS),旧网站没有一致的网址,其中一些属于我的新网站的模式。我想避免为每个重定向编写一个路由。
答案 0 :(得分:0)
您可以使用正则表达式来约束路线值:
routes.MapRoute(
name: "example route",
url: "product/{subcat}",
defaults: new { controller = "Redirect", action = "ProcessPage"},
constraints: new { subcat = @"^subcat\d*$ }
);
我在这里假设约束是“subcat”附加一个整数(这是我可以从你的问题中提取的最好的) - 修改它以满足你的要求。如果您需要一组明确的值,您可以将regex OR运算符与您接受的字符串列表一起使用:
@"^subcat1|subcat2|subcat3$"