首页 新闻 会员 周边

C# RestSharp 调用WebApi的时候出现的问题

0
[已解决问题] 解决于 2018-01-03 19:51
 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说不能序列化。求大神指教啊

最佳解决方案的主页 最佳解决方案 | 初学一级 | 园豆:25
提问于:2017-11-30 18:14
< >
分享
最佳答案
0

是循环引用引起的,需要修改ListingInfo的定义,或者在引起循环引起的属性上添加 [JsonIgnore] 标记

奖励园豆:5
dudu | 高人七级 |园豆:30994 | 2017-11-30 20:47

如果是EF中T4模版生成的类,怎么加上[JsonIgnore]标记?

最佳解决方案 | 园豆:25 (初学一级) | 2017-11-30 20:51

@求知若饥,虚心若愚: 试试下面的全局忽略循环引用检测的解决方法:

JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
    ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
};
dudu | 园豆:30994 (高人七级) | 2017-11-30 21:21

@dudu: 这代码加在哪里啊|?

最佳解决方案 | 园豆:25 (初学一级) | 2017-12-01 09:21

@求知若饥,虚心若愚: 加在 Startup.cs 或 WebApiConfig.cs 中

dudu | 园豆:30994 (高人七级) | 2017-12-01 12:05

@dudu: 放在那里都不行。

最佳解决方案 | 园豆:25 (初学一级) | 2017-12-07 14:11
其他回答(1)
0

不用T4模版生成的类,用自己定义的类就没有问题了

最佳解决方案 | 园豆:25 (初学一级) | 2018-01-03 19:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册