问题:
我构建了以下接口:
[HttpPost] public DataSourceResult Get([DataSourceRequest]DataSourceRequest request) { var data = svrbase.Find(x => x.Deleted == false); var model = data.ToDataSourceResult(request); return model; }
返回值是DataSourceResult,它其实是一个复杂类型,包含了分页信息,排序信息,数据列表。
以下是返回值类型
public class DataSourceResult { public DataSourceResult(); public IEnumerable Data { get; set; } public int Total { get; set; } public IEnumerable<AggregateResult> AggregateResults { get; set; } public object Errors { get; set; } }
以下参数列表
public class DataSourceRequest { public DataSourceRequest(); public int Page { get; set; } public int PageSize { get; set; } public IList<SortDescriptor> Sorts { get; set; } public IList<IFilterDescriptor> Filters { get; set; } public IList<GroupDescriptor> Groups { get; set; } public IList<AggregateDescriptor> Aggregates { get; set; } }
我在传入参数的时候可以正常传入,只是在获取返回值的时候,不知道如何解析,提示解析错误,
我的webapi的调用方法如下所示:
HttpClient clint = new HttpClient(); var response = await PostAsJsonAsync(path, param);//传入参数,服务器端可以正常返回数据。 response.EnsureSuccessStatusCode();
//执行到下面这一行开始出错: var result = await response.Content.ReadAsAsync<DataSourceResult>();
就是最后一名该如何写,以解析返回来的业务数据呢?就是将返回值解析为DataSourceRequest。请各位指点一下,谢谢!
回答1:
先试试读取json字符串
var result = await response.Content.ReadAsStringAsync();
回答2:
public IEnumerable Data { get; set; }
你这个从JSON转换实体的时候标注上类型!比如:
public IEnumerable<A> Data { get; set; }
public class A{
public string name{get;set;};
public string custNbr{get;set;};
public string abcType{get;set;};
public string remark{get;set;};
}
试下!
标签: