1 public List<ListingInfo> GetListingInfoList(List<int> listingRecordId s) 2 { 3 RestClient restClient = new RestClient(baseUrl); 4 RestRequest restRequest = new RestRequest("api/DataCenterService/ GetListingInfoList", Method.POST 5 ); 6 restRequest.RequestFormat = DataFormat.Json; 7 restRequest.AddBody(listingRecordIds); 8 var data = restClient.Execute<List<ListingInfo>>(restRequest).Dat a; 9 var content = restClient.Execute<List<ListingInfo>>(restRequest). Content; 10 return data; 11 }
[HttpPost] public List<ListingInfo> GetListingInfoList(List<int> listingRecordIds) { return dataCenterService.GetListingInfoList(listingRecordIds); }
返回的数据应该是一个List,这个List的count有200多条啊,为什么拿不到呢,而且,这个content说不能序列化。求大神指教啊
是循环引用引起的,需要修改ListingInfo的定义,或者在引起循环引起的属性上添加 [JsonIgnore] 标记
如果是EF中T4模版生成的类,怎么加上[JsonIgnore]标记?
@求知若饥,虚心若愚: 试试下面的全局忽略循环引用检测的解决方法:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings { ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore };
@dudu: 这代码加在哪里啊|?
@求知若饥,虚心若愚: 加在 Startup.cs 或 WebApiConfig.cs 中
@dudu: 放在那里都不行。
不用T4模版生成的类,用自己定义的类就没有问题了