请求解析ASP.NET Core中“URL模式匹配的段变量”的含义
解释URL模式匹配的段变量名称和值
这是ASP.NET Core路由系统里的基础概念,结合你给出的代码和示例,拆解说明如下:
1. 段变量的名称
在路由定义的URL模板里,用{}包裹的部分就是段变量名称。比如代码里的路由模板:
endpoints.MapGet("{first}/{second}/{third}", async context => { foreach (var kvp in context.Request.RouteValues) { await context.Response.WriteAsync($"{kvp.Key}: {kvp.Value}\n"); } })
这里的first、second、third就是预先定义的段变量名称,用来标记URL中对应位置的内容。
2. 段变量的值
当用户发起的请求URL和这个路由模板匹配时,URL中对应位置的实际内容就是段变量的值。比如请求http://localhost:5000/apples/oranges/cherries:
- URL被
/分割为三段:apples、oranges、cherries - 系统会自动将这些值与模板里的变量名称一一对应:
first→applessecond→orangesthird→cherries
3. RouteValues的作用
HttpRequest.RouteValues是一个RouteValuesDictionary类型的字典,它存储了所有“变量名称-对应值”的配对。代码中的foreach循环就是遍历这个字典,最终会输出如下内容:
first: apples second: oranges third: cherries
补充原文说明:RouteValuesDictionary类是可枚举的,这意味着它可以在foreach循环中生成一系列KeyValuePair<string, object>对象,每个对象对应一个段变量的名称以及从请求URL中提取的对应值。
内容的提问来源于stack exchange,提问作者Hossein
相关产品推荐
相关产品推荐

