不是有效的Odata路径模板

时间:2015-08-11 12:49:08

标签: c# asp.net-web-api odata asp.net-web-api-odata

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

  

域:端口/产品/ 100 /的redirectUrl()

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

但我有例外

  

“RedirectUrl”操作中的路径模板“{id} / RedirectUrl()”   controller'Products'不是有效的OData路径模板

我的Webapi配置包含

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

有任何方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:0)

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