我刚刚开始使用 MVC 4 Web API,我似乎误解了它的工作原理。
在 Web API 之前,我有一个简单的 MVC 操作方法,如下所示:
public JsonResult User()
{
return Json(new
{
firstName = "Joe",
lastName = "Jacobs",
email = "joe.jacobs@gmail.com"
});
}
那会很好用。在新的 Web API 控制器中,我正在尝试做类似的事情。
public object User()
{
return new
{
firstName = "Joe",
lastName = "Jacobs",
email = "joe.jacobs@gmail.com"
}
}
这失败并出现序列化错误:
“ObjectContent`1”类型无法序列化内容类型“application/xml”的响应正文;字符集=utf-8'。
内部异常:
类型 '<>f__AnonymousType1`3[System.String,System.String,System.String]' 无法序列化。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。如果该类型是一个集合,请考虑使用 CollectionDataContractAttribute 对其进行标记。有关其他支持的类型,请参阅 Microsoft .NET Framework 文档。
关于从 API 控制器返回匿名类型,我不明白什么?