如果我返回一个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);
}
});
答案 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