0

在这一刻,我有下一个 MapRoute

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults
            new { controller = @"[^\.]*" }                          // Parameter constraints 
        );

我定义的约束是 controller = @"[^.]*"

我需要一个约束来避免名称为“图像”的控制器。

我怎样才能做到这一点??

4

1 回答 1

1

不需要反斜杠来转义点,因为点在字符类中没有特殊含义。

为此,您可以使用负前瞻:

new { controller = @"(?!Images)[^.]*" }

负前瞻是一个锚点,就像^or一样$,它不会消耗正则表达式中的文本,它正在寻找输入文本中的位置。环视的另一个名称是零宽度断言。

于 2013-01-14T12:30:30.060 回答