4

这是我第一次尝试很棒的 Web Api 和 Backbone。到目前为止,一切似乎都是天作之合。但是,我似乎无法使用 OData 过滤器返回相关数据。例如,我有以下作为操作方法:

    //GET /api/posts/
    public IQueryable<KiaFamilyPost> Get()
    {
        return _db.Posts
            .Include("Badge")
            .Include("Entry")
            .AsQueryable();
    }

现在我想过滤上面的帖子,并按降序返回。据我了解,我可以执行以下操作"http://[MySite]/api/posts?$filter=id eq 2&$orderby=DatePost desc"。我试图做以下无济于事:

        APP.posts_collection.fetch({data: {
            entryId: APP.entry.get('Id'),
            $order: 'Id desc'
        }});

Backbone 对控制器"http://[MySite]/api/posts?entryId=1&%24order=Id+desc"进行以下调用。任何人都能让它正常工作吗?

谢谢

泰隆

4

2 回答 2

4

我尝试了 Addy Osmani 的一个名为backbone.paginator的插件。如果您正在使用像 MVC 4 这样的 Web Api,我相信这将非常适合。您所做的就是使用 Paginator 提供的一些参数来扩展您的集合。例如。

    perPageAttribute: '$top',

    skipAttribute: '$skip',

    orderAttribute: 'orderBy',

    customAttribute1: '$inlinecount',

    queryAttribute: '$filter',

    formatAttribute: '$format',

    customAttribute2: '$callback',`
于 2012-05-16T07:52:49.277 回答
0

您能否检查此代码是否有效:(我假设 APP.entry 是您的模型,所以为了获取它的 url,我调用了 APP.entry.url )

   var entryId = APP.entry.get('Id');
   var queryUrl = APP.entry.url() + '?$filter=id eq ' + entryId +'&$orderby=DatePost desc';
   APP.posts_collection.fetch({ url : queryUrl });

我没有测试过这样的代码,但我希望它可以工作,或者至少给你一个线索。

于 2012-04-30T07:35:20.073 回答