web-dev-qa-db-ja.com

Postmanプラグインによって値[FromBody]をpostメソッドに渡すときのヌル値

ASP.net Web APIでAPIコントローラーを使用し、[FromBody]タイプごとにpostメソッドに値を渡す必要があります。

 [HttpPost]
 public HttpResponseMessage Post( [FromBody]string name)
 {
     ....
 }

私が使う 郵便配達員 プラグイン、ただしpostメソッドに送信するときの値 名前 いつも ヌル..この画像に従ってください: enter image description here

およびPostメソッド: enter image description here

なぜこれが起こったのですか?!

35

JsonとFromBodyを使用して単一のプリミティブ文字列をバインドすることはできません。jsonはオブジェクトを送信し、コントローラーは複雑なオブジェクト(モデル)を順番に期待します。単一の文字列のみを送信する場合は、URLエンコードを使用します。

ヘッダーセット

Content-Type: application/x-www-form-urlencoded

POSTリクエストメッセージの本文の本文は=saeed(テスト値に基づく)であり、それ以外は何もありません。不明/可変文字列の場合、入力文字で誤ってエスケープしないように、値をURLエンコードする必要があります。


代替1

モデルを作成し、代わりに使用します。

メッセージ本文の値:{"name":"saeee"}

c#

public class CustomModel {
    public string Name {get;set;}
}

コントローラー方式

public HttpResponseMessage Post([FromBody]CustomModel model)

代替2

メッセージ本文の代わりにURIを使用して、投稿にプリミティブ文字列を渡します。

34
Igor

生のJSONで文字列を投稿し、二重引用符を忘れないでください。

enter image description here

39
Feiyu Zhou