2

如果我返回 Queryable,是否可以将 oData 查询与 MVC 3 操作一起使用?像这样:

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);
    }
});
4

1 回答 1

2

您的第二个示例操作IQueryable<Complaint>can 用作 OData 端点,但前提是您使用 Web API 并且该方法位于ApiController.

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

您可以从本文开始了解 Web.API 中的 OData 支持

OData 可以作为Nuget 包安装:

PM> Install-Package Microsoft.AspNet.WebApi.OData
于 2012-08-20T14:30:25.587 回答