0

我正在尝试创建满足 url 之类的 Odata 方法

域:端口/产品/100/RedirectUrl()

[ODataRoute("{id}/RedirectUrl()")]
public IHttpActionResult RedirectUrl(int id)
{
   return Redirect("myUrl" + id);
}

但我有例外

控制器“产品”中操作“RedirectUrl”的路径模板“{id}/RedirectUrl()”不是有效的 OData 路径模板

我的 Webapi 配置包含

ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
builder.EntityType<Product>().Function("RedirectUrl").Returns<IHttpActionResult>();

有什么办法可以做到这一点?

4

1 回答 1

0

我想你想启用 Key 作为段,跟踪这个https://github.com/OData/WebApi/pulls,然后你可以设置 UrlConventions.ODataUrlConventions 来启用它。或者你必须重写DefaultODataPathHandler来实现这一点,可能需要复制一些私有方法,如 Parse。

于 2015-08-12T03:59:15.743 回答