cis*_*eat 10 c# routing asp.net-mvc-2
如果我有这样的路线:
routes.Add(new Route("{controller}/{page}",
new RouteValueDictionary
{
{ "page", UrlParameter.Optional }
},
new RouteValueDictionary
{
{ "page", @"[Pp]age\d+" }
},
new MvcRouteHandler()
));
Run Code Online (Sandbox Code Playgroud)
然后当{page}缺失时路线不匹配,但是如果我删除它匹配的约束.这是一个错误还是一个功能?
我正在使用^ $ | 在正则表达式中,例如:(^ $ | [Pp] age\d +).我在寻找答案时发现了这个问题,并认为我会添加我在这里找到的内容.
routes.MapRoute(
name: "News Archive",
url: "News/{page}",
defaults: new { controller = "news", action = "List", page= UrlParameter.Optional },
constraints: new { page= @"^$|[0-9][0-9]" });
Run Code Online (Sandbox Code Playgroud)
这是一个特征:如果参数是可选的,约束如何匹配?您可能要么将"page"的默认值设置为"Page1"以解决您的问题,或者将您的正则表达式替换为"([Pp] age\d +)?" 什么都不匹配(我不确定这个,不能测试它).
归档时间: |
|
查看次数: |
2923 次 |
最近记录: |