【问题标题】:.NET Core API return list and list count.NET Core API 返回列表和列表计数
【发布时间】:2018-07-10 14:40:51
【问题描述】:

我正在尝试使用 .NET Core 2.1 API 使用 OK 函数将复杂对象作为 JSON 返回。

复杂对象由一组匿名对象和整个未过滤数据集的计数组成。

我使用的 JavaScript 库需要这种格式的 JSON:

{ 
  data: dataFiltered,
  count: dataUnfiltered.length
}

经过 C# 过滤的匿名对象如下所示:

var unfiltedDataCount = product.Where(p => p.CategoryId == categoryId).Count();
var autoCompleteData = products.Select(p => new { name = p.Name, productId = p.ProductId, categoryId = p.CategoryId}).ToList();

这有效:本机行为

return Ok(autoCompleteData);

这不起作用:Visual Studio 报告错误(名称“data”和“count”在当前上下文中不存在。)

return ok( new { data: autoCompleteData, count: unfiltedDataCount});

【问题讨论】:

  • 也许你不能在Ok 方法中新建一个对象?你得到的确切错误是什么?
  • return ok( new { data = autoCompleteData, count = unfiltedDataCount});
  • @Zac 它不是“在”,而是“之前”。没关系。
  • 巴里,你是什么意思“这不起作用”?生成的 JSON 是什么?
  • @vasily.sib 不是在一个方法中创建一个对象,使该对象带有“in”它吗?

标签: c# asp.net-core asp.net-core-webapi anonymous-types


【解决方案1】:

您使用了错误的语法。

不正确

return ok( new { data: autoCompleteData, count: unfiltedDataCount});

正确

return ok( new { data= autoCompleteData, count= unfiltedDataCount});

您可以在此处查看更多示例:Anonymous types MSDN

【讨论】:

  • 为什么要投反对票? downvoters 是匿名类型的另一个例子 :)
  • @x-otano 我喜欢这句话。我讨厌没有 cmets 的投票。
猜你喜欢
  • 2021-12-07
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多