我使用了两个正则表达式,一个将第一个参数(年份)限制为 4 位数字,第二个(月份)将第二个参数限制为 2 位数字。
[Route("movies/released/{year:regex(\\d{4})}/{month:regex(\\d{2}):range(1, 12)}")]
public ActionResult ByReleaseDate(int year, int month)
{
return Content($"{year}/{month}");
}
Run Code Online (Sandbox Code Playgroud)
这部分有效,当我导航到/movies/released/2017/13 时,我看到了 404。
但是当我导航到/movies/released/200017/03 时,不会产生 404。
您的年份正则表达式在任何地方都匹配 4 位数字,但不要求它仅为 4 位数字。你应该使用
{year:regex(^\\d{4}$)}
Run Code Online (Sandbox Code Playgroud)
^并$标记字符串的开始和结束。另请参阅:特定位数的正则表达式
| 归档时间: |
|
| 查看次数: |
2062 次 |
| 最近记录: |