OData - 如何将PageResult <t>转换为IHttpActionResult

时间:2015-12-16 06:06:52

标签: c# odata

我的Controller上有一个PageResult<T> GetXXX(...)方法,我在其中获取数据并将其作为PageResult<T>返回,现在当出现任何错误或没有内容时,我想要返回回复为HttpStatusCode.InternalServerErrorHttpStatusCode.NoContent

如果我将方法的返回类型保留为IHttpActionResult,那么我会收到错误消息:

  

'无法在控制器'YYY'上创建EDM模型作为'GetXXX'动作   有一个返回类型'System.Web.Http.IHttpActionResult',但没有   实现IEnumerable'

如果我不使用PageResult并简单地返回我的所有数据,那么我就不会收到错误。

我必须使用PageResult<T>,因为我正在管理自己的分页。

public IHttpActionResult GetXXX(...)
{
     PageResult<XXX> finalResult = new PageResult<XXX>(mydata, new Uri(...), Count);
     return Ok<IEnumerable<XXX>>(finalResult.Items);
}

1 个答案:

答案 0 :(得分:0)

你看这个吗,

  PageResult<T> yourPageResult = new PageResult<T>(...);
  return Ok(yourPageResult)