需要使用正则表达式约束管线的帮助

本文关键字:帮助 约束 正则表达式 | 更新日期: 2023-09-27 18:27:24

如何最好地声明L1Cat和L2Cat的值不能是整数值/不能仅由0-9数字组成,以防止在某些URL请求中将页面值分配给它们。

                    routes.MapRoute(
        "Store5", // Route name
        "{RootPointer}/{L1Cat}/{L2Cat}/{page}", // URL with parameters
        new
        {
            controller = "Store",
            action = "Index",
            RootPointer = UrlParameter.Optional,
            page =1
        },
        new { controller = "Store", action = "Index", page = @"'d+" });

需要使用正则表达式约束管线的帮助

对L1Cat和L2Cat都尝试@".*[^'d].*"。这意味着在url部分的某个地方必须有非十进制字符。当然,通常[^'d]就足够了,但默认的Route将正则表达式约束封装在^$中,因此只有[^'d]将仅捕获单个非数字部分。

试试这个

 !Regex.IsMatch(url,@"/'d+/")