web-dev-qa-db-ja.com

asp.net Web APIへのデータの投稿

新しいASP.NET Web APIを理解しようとしています。

これまでのところ、このメソッドシグネチャを作成して正常に接続し、有効な応答を取得することができました...

[HttpPost]
public HttpResponseMessage CreateAccount()

私はフィドラーでこのメソッドにリクエストを送信でき、リクエストを受信して​​いることを確認しました。

ただし、データを渡そうとするのは、問題が発生したときです。

私が最初に試したのは...

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password)

そして私は

メール:xyz、パスワード:abc

バイオリン弾きのリクエストの本文に。これを行うと、500エラーが表示されます

「リクエストのコンテンツに複数のパラメータ(「メール」と「パスワード」)をバインドすることはできません。」

これもメソッドシグネチャとして試しました...

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data)

userAccountRequestDataが単純なPOCOである

public class UserAccountRequestData
{
    public string Email { get; set; }
    public string Password { get; set; }
}

そして私は

{メール:xyz、パスワード:abc}

または

data:{Email:xyz、Password:abc}

リクエストの本文に。どちらの場合でも、POCOにデータを入力しようとすると、デバッグ中にメソッドに到達できますが、データオブジェクトは常にnullです。

強く型付けされたPOCOと、文字列やintなどの複数のプリミティブ型を受け入れる他の両方を受け入れるAPIメソッドを作成する方法を理解する必要があります。

ありがとう

17
jdavis

Content-Typeヘッダーをapplication/jsonに設定してから、有効なJSONを提供する必要があります。

{"Email":"xyz","Password":"abc"}
17
Darrel Miller