??ASP.NET Core編寫的WebApi,由于輸入參數較多,專門定義了輸入參數類并設置[FromBody]方式傳值,但測試時始終無法通過postman將輸入參數值傳遞給WebApi,condition對象的所有屬性值一直都為空。同時在WebApi內部調用SqlSugar查詢數據庫,最后調用Select函數創建并返回新對象實例集合時,返回的Class1類型集合中的所有對象實例的值都為空。
??上述問題的示例代碼如下所示:
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();......
}
??經多次調試無果后,對比網上的WebApi示例及GitHub中的開源項目示例,最終發現類型定義時應定義為屬性而非字段,這兩者的區別請見參考文獻1-2或者自定百度,最終將輸入參數類及Select函數創建的對象類型中的字段都修改為屬性(如下所示)后,再測試調用WebApi即可正常傳值及創建對象實例。
public class InputParams
{public string Param1st { get; set; } = string.Empty;public string Param2st { get; set; } = string.Empty;public string Param3st { get; set; } = string.Empty;
}
參考文獻:
[1]https://blog.csdn.net/huoliya12/article/details/51074583
[2]https://blog.csdn.net/qq_41393222/article/details/124969380