我有以下路线,约束设置为仅允许以“CAR”开头的ID:
context.MapRoute(
"Car Detail",
"AR/Car/{id}",
new { controller = "Car", action = "Detail", id = UrlParameter.Optional },
constraints: new { id = @"^CAR" },
namespaces: new[] { "CarSubmission.Areas.AR.Controllers" }
);
我正在尝试使用此网址:
www.myapp.com/CarSubmission/AR/Car/CAR223126
但是,当在浏览器中点击此网址时,路由不会参与。有任何想法吗?
这个正则表达式(即“^ CAR”)对于c#是错误的吗?我需要正则表达式来查找“CAR”后面跟着任意数量的数字字符。
答案 0 :(得分:2)
您无需使用^
(或$
)进行细分受限制。
尽管如此,你的正则表达式是错误的,因为你不希望在 "CAR"
之后有任何字符。
你应该有这样的东西:
CAR\d+
哪个匹配CAR
后跟一个或多个数字。
或者:
CAR\d{6}
哪个匹配CAR
后跟正好6个数字。
答案 1 :(得分:1)
“^ CAR”不会匹配字符串“CAR”吗?试试@“^ CAR \ d +”
答案 2 :(得分:0)
我认为你的正则表达式是错误的。你所拥有的只是寻找字符串CAR
。你需要告诉它匹配最后的数字。试试这个:
^CAR\d*
其中说“匹配以CAR
开头的字符串以及之后的任意位数。”