https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/routing?view=aspnetcore-5.0
路由模板
路由模板 |
示例匹配 URI |
请求 URI… |
hello |
/hello |
仅匹配单个路径 /hello 。 |
{Page=Home} |
/ |
匹配并将 Page 设置为 Home 。 |
{Page=Home} |
/Contact |
匹配并将 Page 设置为 Contact 。 |
{controller}/{action}/{id?} |
/Products/List |
映射到 Products 控制器和 List 操作。 |
{controller}/{action}/{id?} |
/Products/Details/123 |
映射到 Products 控制器和 Details 操作,并将 id 设置为 123。 |
{controller=Home}/{action=Index}/{id?} |
/ |
映射到 Home 控制器和 Index 方法。 id 将被忽略。 |
{controller=Home}/{action=Index}/{id?} |
/Products |
映射到 Products 控制器和 Index 方法。 id 将被忽略。 |
路由约束
约束 |
示例 |
匹配项示例 |
说明 |
int |
{id:int} |
123456789 , -123456789 |
匹配任何整数 |
bool |
{active:bool} |
true , FALSE |
匹配 true 或 false 。 不区分大小写 |
datetime |
{dob:datetime} |
2016-12-31 , 2016-12-31 7:32pm |
在固定区域性中匹配有效的 DateTime 值。 请参阅前面的警告。 |
decimal |
{price:decimal} |
49.99 , -1,000.01 |
在固定区域性中匹配有效的 decimal 值。 请参阅前面的警告。 |
double |
{weight:double} |
1.234 , -1,001.01e8 |
在固定区域性中匹配有效的 double 值。 请参阅前面的警告。 |
float |
{weight:float} |
1.234 , -1,001.01e8 |
在固定区域性中匹配有效的 float 值。 请参阅前面的警告。 |
guid |
{id:guid} |
CD2C1638-1638-72D5-1638-DEADBEEF1638 |
匹配有效的 Guid 值 |
long |
{ticks:long} |
123456789 , -123456789 |
匹配有效的 long 值 |
minlength(value) |
{username:minlength(4)} |
Rick |
字符串必须至少为 4 个字符 |
maxlength(value) |
{filename:maxlength(8)} |
MyFile |
字符串不得超过 8 个字符 |
length(length) |
{filename:length(12)} |
somefile.txt |
字符串必须正好为 12 个字符 |
length(min,max) |
{filename:length(8,16)} |
somefile.txt |
字符串必须至少为 8 个字符,且不得超过 16 个字符 |
min(value) |
{age:min(18)} |
19 |
整数值必须至少为 18 |
max(value) |
{age:max(120)} |
91 |
整数值不得超过 120 |
range(min,max) |
{age:range(18,120)} |
91 |
整数值必须至少为 18,且不得超过 120 |
alpha |
{name:alpha} |
Rick |
字符串必须由一个或多个字母字符组成,a -z ,并区分大小写。 |
regex(expression) |
{ssn:regex(^\\d{{3}}-\\d{{2}}-\\d{{4}}$)} |
123-45-6789 |
字符串必须与正则表达式匹配。 请参阅有关定义正则表达式的提示。 |
required |
{name:required} |
Rick |
用于强制在 URL 生成过程中存在非参数值 |