1

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 がありません。」

アップデート:

問題が解決しました。手順:

  1. ナイトリー ASP.NET Web スタックの使用
  2. 3 つの簡単な手順で ASP.NET Web API OData を使い始める
4

1 に答える 1

2

リクエストの本文は次のようになります。

{"url": " http://www.microsoft.com/ "}

application/json コンテンツ タイプを使用します。それでもうまくいかない場合は、最新のビルドに更新してみてください。

于 2013-01-29T01:54:59.207 に答える