Json形式のデータをWeb APIコントローラにきちんと(より自然な)方法で送信する方法を見つけようとしています。デフォルトの[FromBody]動作の代わりにasp.net web apiにきれいに書式設定されたjsonデータを送信します。
私に説明させてください。私はこのコントローラがあるとします。
[HttpPost]
public class StudentController : ApiController
{
public void PostSomething([FromBody] string name, [FromBody] Student s)
{
//do something
}
}
(それが正しくフォーマットされたように)私が投稿したいJSONデータは、このようなものです:
{
"name" : "John",
"student" : {
"id" : "1",
"age" : "22"
}
}
しかし、私はへのWeb APIの送るべきですparameter bind
オブジェクトは、次のようにする必要があります:
{
"John",
{
"id" : "1",
"age" : "22"
}
}
問題は、私は私の希望JSON形式、両方name
とstudent
オブジェクトワットを使用している場合コントローラのPostSomething
メソッドではnullになります。
最初の例に似た形式のjsonリクエストをWeb APIコントローラに送信するにはどうすればよいですか?
2番目の例は、有効なjsonのようには見えず、テストしたすべてのバリデーターで失敗します。 –
これはまさにそのケースであり、あなたはまったく正しいです。しかし、Web APIコントローラは、このように送信すればパラメータを受け入れます。それは問題です – roostaamir
あなたの質問は完全に私には分かりません。これは、あなたがサードパーティから受け取る必要があるJSONですか、それとも、サードパーティに送信するために作成する必要があるJSON形式ですか? –