網(wǎng)站水印怎么做的推廣網(wǎng)頁
??ASP.NET Core編寫的WebApi,由于輸入?yún)?shù)較多,專門定義了輸入?yún)?shù)類并設(shè)置[FromBody]方式傳值,但測(cè)試時(shí)始終無法通過postman將輸入?yún)?shù)值傳遞給WebApi,condition對(duì)象的所有屬性值一直都為空。同時(shí)在WebApi內(nèi)部調(diào)用SqlSugar查詢數(shù)據(jù)庫,最后調(diào)用Select函數(shù)創(chuàng)建并返回新對(duì)象實(shí)例集合時(shí),返回的Class1類型集合中的所有對(duì)象實(shí)例的值都為空。
??上述問題的示例代碼如下所示:
public class InputParams
{public string Param1st=string.Empty;public string Param2st=string.Empty;public string Param3st=string.Empty;
}[HttpPost]
public string ProcessData([FromBody]InputParams condition)
{......List<Class1>list=db.Queryable<Student>().Select(it=>new Class1{id=it.Id,name=it.Name}).ToList();......
}
??經(jīng)多次調(diào)試無果后,對(duì)比網(wǎng)上的WebApi示例及GitHub中的開源項(xiàng)目示例,最終發(fā)現(xiàn)類型定義時(shí)應(yīng)定義為屬性而非字段,這兩者的區(qū)別請(qǐng)見參考文獻(xiàn)1-2或者自定百度,最終將輸入?yún)?shù)類及Select函數(shù)創(chuàng)建的對(duì)象類型中的字段都修改為屬性(如下所示)后,再測(cè)試調(diào)用WebApi即可正常傳值及創(chuàng)建對(duì)象實(shí)例。
public class InputParams
{public string Param1st { get; set; } = string.Empty;public string Param2st { get; set; } = string.Empty;public string Param3st { get; set; } = string.Empty;
}
參考文獻(xiàn):
[1]https://blog.csdn.net/huoliya12/article/details/51074583
[2]https://blog.csdn.net/qq_41393222/article/details/124969380