我有一個 ASP.NET Core Web API 和一個 React 客戶端。我正在嘗試使用 React-Admin 構建管理儀表板。我的問題是當我從服務器接收資料時,我的物件具有屬性Id(大寫),然后在控制臺中出現錯誤
'getList' 的回應必須類似于 { data : [{ id: 123, ...}, ...] },但接收到的資料項沒有 'id' 鍵
我嘗試id在我的服務器中使用屬性(小寫)創建新的測驗類,然后問題就消失了。
我該如何解決這個問題?
這是我的測驗課程及其作業。
public class CityModel
{
public string id { get; set; }
public string Name { get; set; }
}
[HttpGet("Cities")]
public CityModel[] GetCities()
{
var city1 = new CityModel()
{
id = "ahsxge",
Name = "Berlin"
};
var city2 = new CityModel()
{
id = "axhdagw",
Name = "London"
};
var list = new List<CityModel>();
list.Add(city1);
list.Add(city2);
Response.Headers.Add("Access-Control-Expose-Headers", "X-Total-Count");
Response.Headers.Add("X-Total-Count", list.Count.ToString());
return list.ToArray();
}
這是我在 react 中的組件:
const AppAdmin = () => {
const jwt = localStorage.getItem("jwt");
const httpClient = (url, options = {}) => {
options.user = {
authenticated: true,
token: 'Bearer ' jwt
};
return fetchUtils.fetchJson(url, options);
};
const dataProvider = jsonServerProvider('https://localhost:44366/api', httpClient);
dataProvider.getList('Cities/Cities', {
pagination: { page: 1, perPage: 15 },
sort: { field: 'Name', order: 'ASC' },
})
.then(response => console.log(response));
return (
<Admin dataProvider={dataProvider}>
<Resource name='Cities/Cities' list={CitiesList} />
</Admin>
)
}
export default AppAdmin
uj5u.com熱心網友回復:
您可以ConfigureServices通過以下方式將 json 轉換器配置為在 Startup.cs 檔案中的方法中使用駝峰式序列化:
services
.AddControllers()
.AddJsonOptions(opts =>
{
opts.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
})
通過這種方式,您可以在 c# 代碼中使用 PascalCase 屬性(您應該這樣做),但您的客戶端將收到 camelCase json 屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/401341.html
上一篇:如何避免錯誤--System.InvalidCastException:無法將物件強制轉換為型別“System.Collections.Generic.ICollection”
