【发布时间】:2015-10-23 06:16:12
【问题描述】:
我正在使用 ASP.NET API,并且我希望从控制器返回一个对象,到目前为止我一直在使用 return Ok(item);。
这将返回该项目的所有属性,但是我想从中返回选定的属性,例如名称和日期,而不是所有内容。
我怎样才能做到这一点?
【问题讨论】:
标签: asp.net json api rest controller
我正在使用 ASP.NET API,并且我希望从控制器返回一个对象,到目前为止我一直在使用 return Ok(item);。
这将返回该项目的所有属性,但是我想从中返回选定的属性,例如名称和日期,而不是所有内容。
我怎样才能做到这一点?
【问题讨论】:
标签: asp.net json api rest controller
你可以使用匿名类型;应该可以正常工作:
return Ok(new { name = item.Name, date = item.Date});
如果没有,您可以简单地创建一个具有名称/日期属性的类;就像您返回 item 并将其序列化为 JSON 对象一样,匿名和自定义类也可以序列化。
编辑:如果你有一个内部集合,你也可以通过以下方式生成一个子集:
new {
name = item.Name,
moreitems = item.subitems.Select(i => new { name = i.Name, etc })
}
或者,这是创建具有属性子集的视图模型可能有益的地方,以简化流程。
【讨论】: