ASP.NET Core 中的路由约束如何定义?

月夜之吻
发布: 2025-10-07 09:51:02
原创
343人浏览过
路由约束用于限制URL占位符匹配,如{ id:int }只匹配整数,支持类型、格式及范围验证,提升应用健壮性。

asp.net core 中的路由约束如何定义?

在 ASP.NET Core 中,路由约束用于限制 URL 路径中占位符的匹配方式,确保传入的参数符合特定格式或类型。通过定义约束,可以避免无效请求进入控制器,提升应用的健壮性。

使用内联语法定义约束

最常见的方法是在路由模板中直接使用冒号 : 添加约束:

  • [Route("api/products/{id:int}")] – 只匹配整数类型的 id
  • [Route("users/{date:datetime}")] – 要求 date 是有效日期时间
  • [Route("files/{filename:alpha}")] – filename 必须全是字母
  • [Route("values/{id:min(1)}")] – id 至少为 1

常用内置约束类型

ASP.NET Core 提供多种预定义约束,适用于大多数场景:

  • int, long, short, float, double, decimal – 数值类型检查
  • bool – 必须是 true 或 false
  • datetime – 有效的日期时间格式
  • guid – 匹配 GUID 格式
  • alpha – 只允许 a-z 或 A-Z 字符
  • regex(expression) – 满足正则表达式
  • min(length), max(value), range(min,max) – 数值或长度范围

在 MapControllerRoutes 中配置全局约束

如果希望在整个应用中复用自定义约束,可以在 Program.cs 中注册:

百度文心百中
百度文心百中

百度大模型语义搜索体验中心

百度文心百中22
查看详情 百度文心百中

app.UseEndpoints(endpoints =>
{
endpoints.MapControllers().WithMetadata(new RouteConstraintMetadata());
});

也可以添加自定义约束类实现 IRouteConstraint 接口,并通过名字注册到路由系统中。

基本上就这些。路由约束让 URL 匹配更精确,合理使用能减少错误处理逻辑。

以上就是ASP.NET Core 中的路由约束如何定义?的详细内容,更多请关注php中文网其它相关文章!

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号