是否有可能让OData执行以下操作?我希望能够通过传递可能不是主键的参数来查询REST调用.我可以调用REST方法,如 - > GetReports(22, 2014)
或Reports(22, 2014)
?
[HttpGet] [ODataRoute("Reports(Id={Id}, Year={Year})")] public IHttpActionResult GetReports([FromODataUri]int Id, [FromODataUri]int Year) { return Ok(_reportsRepository.GetReports(Id, Year)); }
这是我的最新变化.
//Unbound Action OData v3 var action = builder.Action("ListReports"); action.Parameter("key"); action.Parameter ("year"); action.ReturnsCollectionFromEntitySet ("Reports");
我的控制器ReportsController的方法
[HttpPost] [EnableQuery] public IHttpActionResult ListReports([FromODataUri] int key, ODataActionParameters parameters) { if (!ModelState.IsValid) { throw new HttpResponseException(HttpStatusCode.BadRequest); } int year = (int)parameters["year"]; return Ok(_reportsRepository.GetReports(key, year).Single()); }
我试着像这样调用网址:
http://localhost:6064/odata/Reports(key=5,year=2014)/ListReports
没有找到与请求http://localhost:6064/odata/Reports(key%3D5%2Cyear%3D2014)/ListReports'
URI'.` 匹配的HTTP资源