【发布时间】:2015-12-16 06:06:51
【问题描述】:
我的控制器上有一个PageResult<T> GetXXX(...) 方法,我在其中获取数据并将其返回为PageResult<T>,现在当出现任何错误或没有内容时,我想将响应返回为@987654323 @和HttpStatusCode.NoContent
如果我将方法的返回类型保持为IHttpActionResult,那么我会收到一条错误消息:
'无法将 EDM 模型创建为控制器 'YYY' 上的操作 '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);
}
【问题讨论】:
-
你应该返回空数据,并在客户端进行验证
-
好的,但我仍然需要处理内部服务器错误,因为它正在打印堆栈跟踪
-
您的服务器应该对页面没有当前元素的情况进行验证