如何在 .Net 7 中将 Query 绑定到数组

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 .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 绑定到数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 zeppelin 中将数组从 spark 绑定到 javascript?

如何在 Jpa Hibernate Query 中将数字数组作为参数传递? [关闭]

如何在php中将json数组值声明为变量

在asp.net中将数据绑定到html5 DataList

如何在 asp.net core web api 中绑定 Json Query 字符串

在 C# .net winforms 中将字典绑定到 ComboBox