如何在.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)文章
使用vs2019加.net core 對WeiApi的創(chuàng)建過程詳解
這篇文章主要介紹了使用vs2019加.net core 對WeiApi的創(chuàng)建,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Asp.net 通用萬級數(shù)據(jù)分頁代碼[修正下載地址]
在萬級數(shù)據(jù)量下的分頁代碼2008-10-10asp.net 數(shù)據(jù)訪問層 存儲過程分頁語句
在asp.net 網(wǎng)頁中如果在業(yè)務(wù)邏輯層分頁在使用PagedDataSource對象,但如果數(shù)據(jù)記錄過多,使用它會嚴(yán)重的損害應(yīng)用程序的性能.2009-12-12Entity Framework使用Code First模式管理視圖
本文詳細講解了Entity Framework使用Code First模式管理視圖的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03ASP.NET獲取不到JS設(shè)置cookies的解決方法
有時候通過一個頁面設(shè)置的js,在其它的子頁面或父頁面就無法正常獲取,主要是因為路徑的問題, 設(shè)置到根目錄中即可。下面是具體的解決方法。2010-12-12