如何在 .Net 7 中将 Query 绑定到数组
在 .Net 7 中,我们可以通过绑定数组的方式来接收来自查询字符串的参数。这样就不需要再使用逗号分隔的字符串来获取参数了。
代码演示
假设我们需要从 query 上接受多个 id 并返回查询的结果。例如: id=1&id=2
在 .Net 7 中,我们可以这样实现:
public ActionResult GetResults([FromQuery]int[] ids)
{
// 使用 ids 数组查询结果
}
这样就可以直接将 id=1&id=2 这样的查询字符串绑定到 ids 数组上。
借助 IParsable 绑定更复杂的类型
如果我们需要绑定的类型比较复杂,例如:
public ActionResult GetResults([FromQuery]MyDate[] dates)
{
// 使用 dates 数组查询结果
}
我们可以通过实现 IParsable<T> 接口来实现自定义的绑定。
public class MyDate : IParsable<MyDate>
{
public int Month { get; set; }
public int Day { get; set; }
public void Parse(string input)
{
var parts = input.Split('-');
Month = int.Parse(parts[0]);
Day = int.Parse(parts[1]);
}
public static MyDate Parse(string s, IFormatProvider? provider)
{
var date = new MyDate();
date.Parse(s);
return date;
}
public static bool TryParse(string? s, IFormatProvider? provider, out MyDate result)
{
try
{
result = Parse(s, provider);
return true;
}
catch
{
result = default;
return false;
}
}
}
这样就可以通过 dates=1-1&dates=2-2 这样的查询字符串来绑定到 MyDate[] 数组上了。
参考资料
- Bind arrays and string values from headers and query strings[1]
本文采用 Chat OpenAI 辅助注水浇筑而成,如有雷同,完全有可能。
- 本文作者: newbe36524
- 本文链接: https://www.newbe.pro/ChatAI/How-to-binding-query-to-array-in-dotnet-7/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
参考资料
[1]
Bind arrays and string values from headers and query strings: https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis?preserve-view=true&view=aspnetcore-7.0&WT.mc_id=DX-MVP-5003606#bind-arrays-and-string-values-from-headers-and-query-strings
如何在 .Net 7 中将 Query 绑定到数组的更多相关文章
- SpringMVC高级参数绑定(数组和List)
本节内容: 参数绑定之数组 将表单的数据绑定到List 复制下上篇博客中的工程,作为今天开发的工程. 一.参数绑定之数组 1. 需求 在商品列表页面选中多个商品,然后删除. 2. 需求分析 功能要求商 ...
- 解决el-checkbox-group 的v-model无法绑定对象数组
elementUI官方文档中el-checkbox-group组件绑定的都为一维数组,真实业务中数据绑定往往是多个键值对的对象数组,本文主要解决这个问题. 如下代码: <el-checkbox- ...
- 如何在 Azure 门户中将托管数据磁盘附加到 Windows VM
本文介绍了如何通过 Azure 门户将新的托管数据磁盘附加到 Windows 虚拟机. 在开始之前,请查看以下提示: 虚拟机的大小决定了可以附加多少个磁盘. 有关详细信息,请参阅虚拟机大小. 对于新磁 ...
- MVC自动绑定整数数组
昨天恰好遇到这个问题,stackoverflow上已经有人回答过了,拿过来在这里做个笔记.当然下面的例子可以修改,我比较喜欢使用ImodelBinder. 自定义模型绑定器 public class ...
- select绑定json数组对象 asp.net
ashx处理页 string JsonList = "["; IList<Models.Channel> ilist = BLL.ChannelManager.GetA ...
- webix的Form绑定支持数组Array
绑定的原理 form.setValues:把树形对象,压平展开成一维的.比如: var data = { id: 11, name: { first: 'alex', last: 'wu' } }; ...
- HDU 5869 Different GCD Subarray Query 树状数组+离线
Problem Description This is a simple problem. The teacher gives Bob a list of problems about GCD (Gr ...
- HDU 5869 Different GCD Subarray Query 树状数组 + 一些数学背景
http://acm.hdu.edu.cn/showproblem.php?pid=5869 题意:给定一个数组,然后给出若干个询问,询问[L, R]中,有多少个子数组的gcd是不同的. 就是[L, ...
- vue多个input绑定一个数组变量问题
对于data中声明的一个数组变量arr=[],在绑定时候可以如下: <div style="margin-top: 10px;margin-left: 40px;"> ...
- Java中将一个字符串传入数组的几种方法
String Str="abnckdjgdag"; char a[]=new char[Str.length()]; -------------------方法1 用于取出字符串的 ...
随机推荐
- 20220929-ArrayList扩容机制源码分析
示例代码 public class ArrayListSource { public static void main(String[] args) { ArrayList arrayList = n ...
- [题解] Atcoder Regular Contest ARC 148 A B C E 题解
点我看题 题目质量一言难尽(至少对我来说 所以我不写D的题解了 A - mod M 发现如果把M选成2,就可以把答案压到至多2.所以答案只能是1或2,只要判断答案能不能是1即可.如果答案是1,那么M必 ...
- P5431 【模板】乘法逆元 2
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int N = 5e6 ...
- 驱动开发:内核通过PEB得到进程参数
PEB结构(Process Envirorment Block Structure)其中文名是进程环境块信息,进程环境块内部包含了进程运行的详细参数信息,每一个进程在运行后都会存在一个特有的PEB结构 ...
- IDEA生成带参数和返回值注释
步骤说明 打开IDEA进入点击左上角 - 文件 - 设置 - 编辑器 - 活动模板 新建活动模板 填写模板文本 编辑变量 添加变量表达式 设置模板使用范围-设置全部范围应用-或者设置只在Java代码中 ...
- SSM框架整合图书管理项目
SSM框架整合 1.建立简单的maven项目 2.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <p ...
- 抛砖系列之redis监控命令
前言 redis是一款非常流行的kv数据库,以高性能著称,其高吞吐.低延迟等特性让广大开发者趋之若鹜,每每看到别人发出的redis故障报告都让我产生一种居安思危,以史为鉴的危机感,恰逢今年十一西安烟雨 ...
- 【原创】i.MXRT J-Flash烧写算法使能eFuse熔丝位写入
临近年底,终于又憋了一篇文章出来,本来年初的时候是有计划把去年总结的一些东西整理下发布出来的,结果还是被工作和生活上各种琐事给耽搁了.哎,今年刚过了自己35岁的生日,眼瞅着这个人生节点 ...
- 六、模型层(ORM)
六.模型层(ORM) Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库操作,而是通过定义模型类,操作模型类来完成对数据库中表的增删改查和创建等操作. O是object,也就类对象的意 ...
- 研发效能|DevOps 已死平台工程永存带来的焦虑
最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...