使用ASP.NET Web API OData与EntitySetController无法创建链接

时间:2013-01-28 20:41:09

标签: asp.net-web-api odata

我正在使用ASP.NET Web API OData和EntitySetController,

尝试在两个实体之间创建链接:ProductFamily和Product,

OData行动:

public override void CreateLink([FromODataUri] int key, string navigationProperty, [FromBody] Uri link)

ajax请求:

$.ajax({
    url: "api/ProductFamily(1)/$links/Products",
    type: "PUT",
    //data missing for the "[FromBody] Uri link"?? what is the format of the data??
    success: function (result) {
        //do something
    }
});

发送ajax请求后,它成功运行到CreateLink Action,但 link参数始终为null

ajax请求中缺少哪种数据?格式是什么?

有样品吗?

编辑1:应该是这样吗?

ajax请求:

$.ajax({
    url: "api/ProductFamily(1)/$links/Products",
    type: "PUT",
    data: {"url":"api/Products(5)"}
    success: function (result) {
        //do something
    }
});

这将导致系统。 InvalidOperationException :“没有MediaTypeFormatter可用于从媒体类型为'application / json'的内容中读取'Uri'类型的对象。”

更新:

解决了问题。 步骤进行:

  1. Using Nightly ASP.NET Web Stack
  2. Getting started with ASP.NET Web API OData in 3 simple steps

1 个答案:

答案 0 :(得分:2)

请求正文应如下所示:

{“url”:“http://www.microsoft.com/”}

使用application / json内容类型。如果这不起作用,请尝试更新到我们的最新版本。