.NET 7 Minimal API多查询参数自动映射实现方法咨询
.NET 7 Minimal API 映射多查询参数的方法
当然支持自动映射多个查询参数,完全不需要手动解析。
针对你的示例URL /o/post?id=123&filter=xyz,直接在处理程序中声明对应参数即可,ASP.NET Core的模型绑定系统会自动完成映射:
app.MapGet("/o/post", (int id, string filter) => { return $"ID: {id}, Filter: {filter}"; });
关键说明:
- 这里的
id和filter会自动匹配URL中同名的查询参数,无需额外标记; - 如果查询参数名和处理程序参数名不一致,可通过
[FromQuery(Name = "参数名")]指定,比如查询参数是filter_val,可以写[FromQuery(Name = "filter_val")] string filter; - 当参数较多时,还可以封装成实体类,模型绑定会自动填充属性值:
// 定义查询参数实体类 public class PostQueryParams { public int Id { get; set; } public string Filter { get; set; } } // 处理程序绑定实体类 app.MapGet("/o/post", (PostQueryParams queryParams) => { return $"ID: {queryParams.Id}, Filter: {queryParams.Filter}"; });
你提到的/{*rest}写法是用于捕获剩余路径片段的,完全不适合处理查询参数场景,没必要采用这种方式。
内容的提问来源于stack exchange,提问作者vvg
相关产品推荐
相关产品推荐

