MVC 4(RC)Web Api OData未正确排序

Bre*_*bst 2 jquery json odata asp.net-mvc-4 asp.net-web-api

最近更新到MVC4的RC.它解决了很多问题,特别是在日期序列化方面.但是,我有另一个问题.我用于分页/排序等的OData排序和选项现在不起作用.我没有更改代码中的任何内容,我在发行说明中找不到任何提及功能已更改的内容.我的代码在下面,任何想法我做错了什么?

注意:我正在使用AttributeRouting扩展,不确定这是否导致问题.


Web API类/方法

[RouteArea("v1")]
[RoutePrefix("locations")]
public class LocationsController : ApiController
{
    // Data Repository
    static readonly IRepository<Location> Repo = new LocationRepository();

    #region CRUD

    [GET("")]
    public IQueryable<Location> Get()
    {
        return Repo.All;
    }
}
Run Code Online (Sandbox Code Playgroud)

jQuery客户端调用

$.ajax({
        url: '/v1/locations?$orderby=Name asc',
        success: function (data) {
            resultFunction(data);
        }
});
Run Code Online (Sandbox Code Playgroud)

JSON响应

[
    {
        "LocationId":"aca3e1fe-8192-4bb8-b233-1d6fe6b69ba4",
        "Name":"Triangle North"
    },
    {
        "LocationId":"0c99a267-2093-401a-9466-70788500630b",
        "Name":"Triangle West"
    },
    {
        "LocationId":"168e3755-b61e-41d6-99f3-941d738ab321",
        "Name":"Triangle East"
    },
    {
        "LocationId":"82e7a547-a4eb-4233-bdb4-cd8c5b369af8",
        "Name":"Triangle South",
    }
]
Run Code Online (Sandbox Code Playgroud)

Bre*_*bst 5

结果在搜索MSFT的过程中决定要求指定显式属性,以便OData内容自动流动:

(...)您必须[Queryable]在方法(docs)上放置一个属性.

[Queryable]
public IQueryable<Product> GetAllProducts()
{
    return repository.GetAll().AsQueryable();
}
Run Code Online (Sandbox Code Playgroud)

http://forums.asp.net/t/1809900.aspx/1?Web+API+OData+in+RC

卫生署!