.NET Core中如何获取URL路由花括号内的参数值
在.NET Core中获取路由参数{value}为字符串的实现方法
嗨,这事儿其实挺简单的,在.NET Core里你只需要借助路由参数绑定就能轻松拿到{value}的字符串值,给你两种常用的实现方式:
方法一:直接匹配同名参数
最简单的方式就是在你的Index方法里添加一个和路由变量同名的string类型参数,.NET Core的路由系统会自动完成绑定:
[Route("abc-yyy-{value}")] public IActionResult Index(string value) { // 这里直接使用value变量即可,它就是路由中{value}对应的字符串值 // 比如访问abc-yyy-hello,value就等于"hello" return View(); }
方法二:使用[FromRoute]特性指定参数名
如果你的方法参数名不想和路由变量名一致,可以用[FromRoute]特性明确指定要绑定的路由参数名称:
[Route("abc-yyy-{value}")] public IActionResult Index([FromRoute(Name = "value")] string customParamName) { // 这里customParamName会被绑定为路由中{value}的字符串值 return View(); }
额外提示:处理包含特殊字符的value
如果你的{value}可能包含斜杠(/)这类默认路由不允许的字符,可以给路由参数添加any约束来放宽限制:
[Route("abc-yyy-{value:any}")] public IActionResult Index(string value) { // 现在value可以包含更多特殊字符,比如访问abc-yyy/test/123,value会是"test/123" return View(); }
内容的提问来源于stack exchange,提问作者Udaya
相关产品推荐
相关产品推荐

