17

新しいASP.NETWebAPIを理解しようとしています。

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

[HttpPost]
public HttpResponseMessage CreateAccount()

fiddlerを使用してこのメ​​ソッドにリクエストを送信でき、リクエストを受信して​​いることを確認しました。

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

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

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

そして私はタイプします

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

フィドラーのリクエストの本文に。これを行うと、500エラーが表示されます

「複数のパラメーター(「email」および「password」)をリクエストのコンテンツにバインドできません。」

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

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

UserAccountRequestDataは単純なPOCOです

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

そして私は

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

また

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

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

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

ありがとう

4

1 に答える 1

17

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

{"Email":"xyz","Password":"abc"}
于 2013-03-11T15:08:05.997 に答える