Web APIプロジェクトとMassiveを使用してデータベースタスクを実行しています。 私のコントローラでは、Postメソッドが動的オブジェクトを受け入れてMassive Insert
メソッドで直接使用できるようにします。Web APIメソッドでの動的パラメータの使用
public class LinkController : ApiController
{
public IHttpActionResult Post(dynamic link)
{
dynamic model = new Massive.DynamicModel("main", tableName: "Links", primaryKeyField: "Id");
return Ok(model.Insert(link));
}
}
そして、POSTで以下のJSONが送信される要求:
{
"Name":"StackOverflow",
"Url":"http://www.stackoverflow.com",
"Description":"My most visited web site!",
"FolderId":2
}
私の問題はJSON.NetデシリアライズJSONs方法です。 Post
メソッドが呼び出されると、linkパラメーターには4つのプロパティーがあり、 ですが、Newtonsoft.Json.Linq.JValue型であり、いくつかのプリミティブ型ではありません(Nameのexpampleストリング用ではありません)、Massiveは でJValueオブジェクトを処理できません。
パラメータを(カスタムJsonConverterを作成し、Web APIモデルのバインディングを調整することによって)そのプロパティのプリミティブ型にする必要があります。
ご回答ありがとうございます。私はそれを試みましたが、残念ながら何も変わっていません –
@FarzanHajianこれはこれが私のWebAPIのいくつかを設定しているので不可能です。 –