私はMVC4Web APIを使い始めたばかりで、それがどのように機能するかを誤解しているようです。
Web APIの前は、次のような単純なMVCアクションメソッドがありました。
public JsonResult User()
{
return Json(new
{
firstName = "Joe",
lastName = "Jacobs",
email = "joe.jacobs@gmail.com"
});
}
それはうまくいくでしょう。新しいWebAPIコントローラーで、私は同様のことをしようとしています。
public object User()
{
return new
{
firstName = "Joe",
lastName = "Jacobs",
email = "joe.jacobs@gmail.com"
}
}
これはシリアル化エラーで失敗します:
'ObjectContent`1'タイプは、コンテンツタイプ'application/xmlの応答本文をシリアル化できませんでした。charset =utf-8'。
内部例外:
タイプ'<>f__AnonymousType1`3 [System.String、System.String、System.String]'はシリアル化できません。DataContractAttribute属性でマークを付け、シリアル化するすべてのメンバーをDataMemberAttribute属性でマークすることを検討してください。タイプがコレクションの場合は、CollectionDataContractAttributeでマークすることを検討してください。サポートされている他のタイプについては、Microsoft.NETFrameworkのドキュメントを参照してください。
APIコントローラーから匿名型を返すことについて私は何を理解していませんか?