Web API 2 学习笔记 - 分页

Web API 2.2 odata v4 -系列的学习笔记,只共我个人参考。如果您不小心看了,发现有错误,请指正我,如果你是想学习,请离开哦 !

 

参考 : http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options (这个是v3哦)

不 response odata format 的做法是这样的 

复制代码
[Route("")]
//[EnableQuery] <--不要放这个!  
public PageResult<Salesman> Get(ODataQueryOptions<Salesman> options)
{
    //有set分页,才会有NextLink
    ODataQuerySettings settings = new ODataQuerySettings()
    {
        PageSize = 2
    };
    //因为没有[EnableQuery],所以这里我们要自己来valid一下
    ODataValidationSettings vSettings = new ODataValidationSettings() {
        AllowedQueryOptions = AllowedQueryOptions.Count | AllowedQueryOptions.Filter   //support count and filter only      
    };
    options.Validate(vSettings); //这里fail会 throw ODataException
          
    IQueryable results = options.ApplyTo(db.salesmans, settings);
    return new PageResult<Salesman>(
                results as IEnumerable<Salesman>,
                Request.ODataProperties().NextLink,
                Request.ODataProperties().TotalCount
            );
}
复制代码
Js
var
xhr = new XMLHttpRequest(); xhr.open("GET", "//localhost:4931/api/salesmans?$count=true", true); //$count=true 是 odata v4. v3 是$inlinecount=allpages xhr.setRequestHeader("accept", "application/json"); xhr.send(null);

 

posted @   兴杰  阅读(319)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 百万级群聊的设计实践
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示