1

是否有一种简单的方法可以在您的 route.maproute 中定义查找值?

示例路线:

 routes.MapRoute(
              name: "example route", 
               url: "product/{subcat}", 
          defaults: new { controller = "Redirect", action = "ProcessPage"}
      );

其中:{subcat} 只能是以下值:subcat1、subcat2、subcat3

我正在尝试编写从旧站点到新站点的重定向(不能使用 IIS),旧站点没有一致的 url,其中一些属于我的新站点的模式。我想避免为每个重定向编写路由。

4

1 回答 1

0

您可以使用正则表达式来约束您的路线值:

routes.MapRoute(
    name: "example route", 
    url: "product/{subcat}", 
    defaults: new { controller = "Redirect", action = "ProcessPage"},
    constraints: new { subcat = @"^subcat\d*$ }
);

我在这里假设约束是“subcat”附加一个整数(这是我可以从你的问题中提取的最好的) - 修改它以满足你的要求。如果您需要一组明确的值,您可以将正则表达式 OR 运算符与您接受的字符串列表一起使用:

@"^subcat1|subcat2|subcat3$"
于 2013-12-17T18:58:09.453 回答