使用Odata 7.0.1在控制器上进行链接创建和删除时遇到问题
根据http://odata.github.io/WebApi/#03-01-routing-abstract,以下嵌板应自动创建路线(部分查询,创建和删除链接)
在名为CreateRef
的方法上进行Http POST和PUT
控制器上的方法签名进一步显示为
// POST /odata/Products(1)/Supplier/$ref
public HttpResponseMessage CreateLink(int key, string navigationProperty, [FromBody] Uri link)
对于删除,它是:
// DELETE /odata/Products(1)/Supplier/$ref
public HttpResponseMessage DeleteLink(int key, string navigationProperty, [FromBody] Uri link)
模板为
HTTP DELETE DeleteRef
我有一个客户端集成测试,它会生成以下形式的链接
DELETE http://localhost/Building(007c3552-43da-44c4-bf8f-b5221553c484)/UsageTypes/$ref?$id=UsageType(18)
对我来说很好。
可悲的是,我总是遇到路由错误,“未找到WebRequestException”。
我都尝试过
[HttpDelete]
public async Task<IActionResult> DeleteRef(Guid key, String navigationProperty, [FromBody] Uri link) {
return Ok();
}
和
[HttpDelete]
public async Task<IActionResult> DeleteLink(Guid key, String navigationProperty, [FromBody] Uri link) {
return Ok();
}
我在做什么错了?
请注意,Odata在一般情况下有效-我们具有正确生成的用于路由的各个对象,函数和操作的get和put和post方法。目前,只有链接似乎失败了(这是我们现在投入生产的新部分,以淘汰旧的基于REST的API)。