如何在.Net?7中將Query綁定到數(shù)組詳解
前言
在 .Net 7 中,我們可以通過(guò)綁定數(shù)組的方式來(lái)接收來(lái)自查詢(xún)字符串的參數(shù)。這樣就不需要再使用逗號(hào)分隔的字符串來(lái)獲取參數(shù)了。
代碼演示
假設(shè)我們需要從 query 上接受多個(gè) id 并返回查詢(xún)的結(jié)果。例如: id=1&id=2
在 .Net 7 中,我們可以這樣實(shí)現(xiàn):
public ActionResult GetResults([FromQuery]int[] ids)
{
// 使用 ids 數(shù)組查詢(xún)結(jié)果
}
這樣就可以直接將 id=1&id=2 這樣的查詢(xún)字符串綁定到 ids 數(shù)組上。
借助 IParsable 綁定更復(fù)雜的類(lèi)型
如果我們需要綁定的類(lèi)型比較復(fù)雜,例如:
public ActionResult GetResults([FromQuery]MyDate[] dates)
{
// 使用 dates 數(shù)組查詢(xún)結(jié)果
}
我們可以通過(guò)實(shí)現(xiàn) IParsable<T> 接口來(lái)實(shí)現(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;
}
}
}
這樣就可以通過(guò) dates=1-1&dates=2-2 這樣的查詢(xún)字符串來(lái)綁定到 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用vs2019加.net core 對(duì)WeiApi的創(chuàng)建過(guò)程詳解
這篇文章主要介紹了使用vs2019加.net core 對(duì)WeiApi的創(chuàng)建,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Asp.net 通用萬(wàn)級(jí)數(shù)據(jù)分頁(yè)代碼[修正下載地址]
在萬(wàn)級(jí)數(shù)據(jù)量下的分頁(yè)代碼2008-10-10
ASP.NET在上傳文件時(shí)對(duì)文件類(lèi)型的高級(jí)判斷的代碼
在上傳文件過(guò)程中,可以通過(guò)修改擴(kuò)展名來(lái)逃過(guò)文件類(lèi)型的判斷并實(shí)現(xiàn)上傳,就需要可以驗(yàn)證究竟是什么文件。下面的代碼大家可以測(cè)試下。2009-12-12
ASP.NET中母版頁(yè)和shtml實(shí)例入門(mén)
這篇文章主要介紹了ASP.NET中母版頁(yè)和shtml,較為簡(jiǎn)單的分析了asp.net的母版頁(yè)和shtml相關(guān)用法,需要的朋友可以參考下2015-06-06
asp.net 數(shù)據(jù)訪問(wèn)層 存儲(chǔ)過(guò)程分頁(yè)語(yǔ)句
在asp.net 網(wǎng)頁(yè)中如果在業(yè)務(wù)邏輯層分頁(yè)在使用PagedDataSource對(duì)象,但如果數(shù)據(jù)記錄過(guò)多,使用它會(huì)嚴(yán)重的損害應(yīng)用程序的性能.2009-12-12
ASP.NET 控件開(kāi)發(fā)系列之圖片切換web控件
剛開(kāi)始學(xué)習(xí)控件開(kāi)發(fā),寫(xiě)了一個(gè)web圖片切換控件,歡迎大家拍磚.2010-04-04
Entity Framework使用Code First模式管理視圖
本文詳細(xì)講解了Entity Framework使用Code First模式管理視圖的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
ASP.NET獲取不到JS設(shè)置cookies的解決方法
有時(shí)候通過(guò)一個(gè)頁(yè)面設(shè)置的js,在其它的子頁(yè)面或父頁(yè)面就無(wú)法正常獲取,主要是因?yàn)槁窂降膯?wèn)題, 設(shè)置到根目錄中即可。下面是具體的解決方法。2010-12-12

