我有非常简单的OData控制器,可以成功处理标准操作(至少GET,POST,PUT和DELETE方法正在工作)。我跟着this tutorial并添加了简单的绑定操作。该方法具有参数参数,但实际上它不需要参数:
[HttpPost]
public IHttpActionResult Close([FromODataUri] int key, ODataActionParameters parameters) {
return Ok();
}
我已在OData EDM配置中定义了此操作,如下所示:
builder.EntitySet<Ticket>("tickets");
builder.EntityType<Ticket>().Action("Close");
我试图从邮递员那里采取行动:
POST /odata/tickets(2)/Default.Close HTTP/1.1
Host: localhost:50477
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: eef4c1f6-8c7f-f5eb-c22d-4397f3bda170
但收到错误消息:
{
"error": {
"code": "",
"message": "No HTTP resource was found that matches the request URI 'http://localhost:50477/odata/tickets(2)/default.close'.",
"innererror": {
"message": "No routing convention was found to select an action for the OData path with template '~/entityset/key/unresolved'.",
"type": "",
"stacktrace": ""
}
}
}
我在SO上阅读了整个互联网和所有相关文章,但无法解决这个问题。请帮帮我,因为我对如何对抗这个问题一无所知。