需要使用正则表达式约束管线的帮助
本文关键字:帮助 约束 正则表达式 | 更新日期: 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+/")