EntitySetController で ASP.NET Web API OData を使用しています。
ProductFamily と Product という 2 つのエンティティ間のリンクを作成しようとしています。
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 アクションに正常に実行されますが、リンク パラメータは常に nullです。
ajaxリクエストで欠落しているデータは何ですか?? フォーマットは何ですか??
サンプルはありますか??
編集1:このようにする必要がありますか??
ajax リクエスト:
$.ajax({
url: "api/ProductFamily(1)/$links/Products",
type: "PUT",
data: {"url":"api/Products(5)"}
success: function (result) {
//do something
}
});
これにより、システムが発生します。InvalidOperationException : 「メディア タイプが 'application/json' のコンテンツからタイプ 'Uri' のオブジェクトを読み取るために使用できる MediaTypeFormatter がありません。」
アップデート:
問題が解決しました。手順: