ASP.NET Web APIでXMLデータを使用してPOSTを実行すると、モデルバインディングを機能させることができませんでした。JSONデータは正常に機能します。
まったく新しいWebAPIプロジェクトを使用して、これが私のモデルクラスです。
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class PostResponse
{
public string ResponseText { get; set; }
}
これがコントローラーでの私のpostメソッドです:
public PostResponse Post([FromBody]Person aPerson)
{
var responseObj = new PostResponse();
if (aPerson == null)
{
responseObj.ResponseText = "aPerson is null";
return responseObj;
}
if (aPerson.FirstName == null)
{
responseObj.ResponseText = "First Name is null";
return responseObj;
}
responseObj.ResponseText = string.Format("The first name is {0}", aPerson.FirstName);
return responseObj;
}
FiddlerのJSONで正常に実行できます。
リクエストヘッダー:
ユーザーエージェント:フィドラー
ホスト:localhost:49188
コンテンツタイプ:application / json; charset = utf-8
Content-Length:38リクエスト本文:
{"FirstName": "Tom"、 "LastName": "Jones"}結果:
{"ResponseText":"名はトムです"}
XMLで渡す場合、Personオブジェクトは正しくハイドレートされません。
リクエストヘッダー:
ユーザーエージェント:フィドラー
ホスト:localhost:49188
コンテンツタイプ:text / xml
コンテンツ長:79リクエスト本文:
<Person>
<FirstName> Tom </ FirstName>
<LastName> Jones </ LastName>
</ Person>結果:
<ResponseText>aPersonはnullです</ResponseText>
私が理解していることから、XMLはJSONと同様に機能するはずです。私がここで欠けているものについて何か提案はありますか?
ありがとう、
スキップ