加入收藏 | 设为首页 | 会员中心 | 我要投稿 阜阳站长网 (https://www.0558zz.com/)- 科技、建站、内容创作、云计算、网络安全!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

一文详细阐述.Net 7中将Query绑定到数组

发布时间:2024-05-18 18:05:30 所属栏目:程序设计 来源:DaWei
导读:   这篇文章给大家分享的是“一文详细阐述.Net 7中将Query绑定到数组”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。 

  这篇文章给大家分享的是“一文详细阐述.Net 7中将Query绑定到数组”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。

  目录

  前言

  代码演示

  借助 IParsable 绑定更复杂的类型

  参考资料

  总结

  前言

  在 .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 接口来实现自定义的绑定。

  public class MyDate : IParsable

  {

  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:

  这篇关于“一文详细阐述.Net 7中将Query绑定到数组”的文章就介绍到这了,更多相关的内容,欢迎关

(编辑:阜阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章