使用带有MVC 3操作的oData查询

时间:2012-08-20 13:29:38

标签: asp.net-mvc-3 odata

如果我返回一个Queryable,是否可以使用带有MVC 3操作的oData查询?像这样:

public JsonResult GetComplaints()
{
    var complaints = db.Complaints.AsQueryable();
    return Json(complaints, JsonRequestBehavior.AllowGet);
}

public IQueryable<Complaint> GetComplaints()
{
    return db.Complaints.AsQueryable();
}

如果我这样称呼它:

$.ajax({
    url: '@Url.Action("GetComplaints")?$filter=startswith(CompanyName, \'123\')',
    type: 'GET',
    success: function (data) {
        console.log(data);
    }
});

1 个答案:

答案 0 :(得分:2)

使用IQueryable<Complaint>的第二个示例操作可以充当OData端点,但仅当您使用Web API且该方法位于ApiController内时。

常规MVC控制器不支持开箱即用的odata查询。

您可以在Web.API from this article

中开始了解OData支持

OData可以安装为Nuget package

PM> Install-Package Microsoft.AspNet.WebApi.OData