我的 ASP.NET Web API 應用程序在返回數據時遇到一些問題。我有 2 個模型,省到區作為一對多關系。我按照Microsoft 網站的教程使用預加載這是我的Province.cs模型[Table("province")]public class Province{ [Key] [Column("id")] public int Id { get; set; } [Column("displayName")] public string DisplayName { get; set; } [Column("code")] [StringLength(10)] public string Code { get; set; } // FKs public virtual ICollection<District> Districts { get; set; }}我的District.cs模特[Table("district")]public class District{ [Key] [Column("id")] public int Id { get; set; } [Column("displayName")] public string DisplayName { get; set; } [Column("prefix")] public string Prefix { get; set; } [Column("provinceId")] public int ProvinceId { get; set; } // FKs public virtual Province Province { get; set; }}在我LocationController.cspublic async Task<ActionResult<IEnumerable<Province>>> GetProvince([FromQuery] Province _province){ // Eager Loading return await _context.province.Include(p => p.Districts).Where(p => p.Id == _province.Id).ToListAsync();}當我打電話https://localhost:44346/api/province?id=1或使用id我的數據庫中存在的任何內容時。Postman 和我所有的瀏覽器(MS Edge、Chrome...)都只返回 JSONArray 的一部分??雌饋硐襁@樣:[ { "id": 1, "displayName": "H? Chí Minh", "code": "SG", "districts": [ { "id": 1, "displayName": "Bình Chánh", "prefix": "Huy?n", "provinceId": 1就是這樣。只有11行數據。它甚至與 JSON 格式不匹配。我的預期回報必須是:[ { "id": 1, "displayName": "H? Chí Minh", "code": "SG", "districts": [ { "id": 1, "displayName": "Bình Chánh", "prefix": "Huy?n", "provinceId": 1 }, { ... },... },...]或者至少是正確的 JSON 格式。我之前的 2 個 API 可以很好地獲取每個表的所有數據。我在這里缺少什么?謝謝。
1 回答

大話西游666
TA貢獻1817條經驗 獲得超14個贊
您應該創建一個模型并返回它而不是您的實體。
這是由于自引用循環而發生的。
如果您正在使用Newtonsoft.Json
可以在startup.cs中忽略它
services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore; })
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消