1

我将 ASP.NET Web API OData 与 EntitySetController 一起使用,

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

OData 行动:

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

阿贾克斯请求:

$.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({
    url: "api/ProductFamily(1)/$links/Products",
    type: "PUT",
    data: {"url":"api/Products(5)"}
    success: function (result) {
        //do something
    }
});

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

更新:

问题解决了。脚步:

  1. 使用每晚 ASP.NET Web 堆栈
  2. 通过 3 个简单步骤开始使用 ASP.NET Web API OData
4

1 回答 1

2

请求正文应如下所示:

{“网址”:“ http://www.microsoft.com/ ”}

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

于 2013-01-29T01:54:59.207 回答