如何在.Net?7中將Query綁定到數(shù)組詳解
前言
在 .Net 7 中,我們可以通過綁定數(shù)組的方式來接收來自查詢字符串的參數(shù)。這樣就不需要再使用逗號分隔的字符串來獲取參數(shù)了。
代碼演示
假設(shè)我們需要從 query 上接受多個 id 并返回查詢的結(jié)果。例如: id=1&id=2
在 .Net 7 中,我們可以這樣實現(xiàn):
public ActionResult GetResults([FromQuery]int[] ids)
{
// 使用 ids 數(shù)組查詢結(jié)果
}
這樣就可以直接將 id=1&id=2 這樣的查詢字符串綁定到 ids 數(shù)組上。
借助 IParsable 綁定更復(fù)雜的類型
如果我們需要綁定的類型比較復(fù)雜,例如:
public ActionResult GetResults([FromQuery]MyDate[] dates)
{
// 使用 dates 數(shù)組查詢結(jié)果
}
我們可以通過實現(xiàn) IParsable<T> 接口來實現(xiàn)自定義的綁定。
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[] 數(shù)組上了。
參考資料
Bind arrays and string values from headers and query strings:
總結(jié)
到此這篇關(guān)于如何在.Net 7中將Query綁定到數(shù)組的文章就介紹到這了,更多相關(guān).Net7將Query綁定到數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.NET 6開發(fā)TodoList應(yīng)用之實現(xiàn)ActionFilter
Filter在.NET Web API項目開發(fā)中也是很重要的一個概念,它運行在執(zhí)行MVC響應(yīng)的Pipeline中執(zhí)行,允許我們將一些可以在多個Action之間重用的邏輯抽取出來集中管理。本文將詳細介紹一下.NET 6如何實現(xiàn)ActionFilter,感興趣的可以學(xué)習(xí)一下2021-12-12
ASP.net WebAPI跨域調(diào)用問題的解決方法
在做Web開發(fā)中,常常會遇到跨域的問題,到目前為止,已經(jīng)有非常多的跨域解決方案。下面這篇文章主要給大家介紹了關(guān)于ASP.net WebAPI跨域調(diào)用問題的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2018-03-03
.NET Framework集成Quartz的實現(xiàn)示例
本文主要介紹了.NET Framework集成Quartz的實現(xiàn)示例,Quartz 主要用于定時執(zhí)行任務(wù)方面,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03

