OData webAPI を使用して、param を使用してアクションを呼び出し、メタ情報なしで json にシリアル化してみてください。だから、私はタイプのオブジェクトを渡したい:
public class SomeRequest
{
public RequestReason Reason { get; set; }
}
public enum RequestReason
{
New,
Dublicate
}
mdel を作成し、アクションを構成しました。
var action = modelBuilder.Entity<Member>().Action("SomeRequest");
action.Parameter<SomeRequest>("Info");
action.Returns<HttpResponseMessage>();
var model = modelBuilder.GetEdmModel();
configuration.EnableOData(model);
コントローラーにコードがあります:
[HttpPost]
public HttpResponseMessage RequestIDCard(int key, [FromBody]ODataActionParameters param)
{
object value;
param.TryGetValue("Info", out value);
///!!!!
}
そして、実際の型 SomeRequest で値を持つことを期待し、型をキャストして処理します...次に、ヘッダーを使用して POST 要求を作成します
コンテンツタイプ: application/json;json=light; charset=utf-8 Accept: application/json;odata=light
と体
{"情報":{"理由":1}}
しかし、「Newtonsoft.Json.Linq.JObject」タイプのオブジェクトを取得しましたが、キャストできないことを確認してください! しかし、オブジェクト タイプを int に変更すると、すべてが機能します :) WebAPI OData のバグですか、何か間違っていますか?