.NET Core API 返回列表和列表计数

Bar*_*SIH 0 c# anonymous-types asp.net-core asp.net-core-webapi

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

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

我正在使用一个需要这种格式的 JSON 的 JavaScript 库:

{ 
  data: dataFiltered,
  count: dataUnfiltered.length
}
Run Code Online (Sandbox Code Playgroud)

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();
Run Code Online (Sandbox Code Playgroud)

这有效:本机行为

return Ok(autoCompleteData);
Run Code Online (Sandbox Code Playgroud)

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

return ok( new { data: autoCompleteData, count: unfiltedDataCount});
Run Code Online (Sandbox Code Playgroud)

Bad*_*ake 6

您使用了错误的语法。

不正确

return ok( new { data: autoCompleteData, count: unfiltedDataCount});
Run Code Online (Sandbox Code Playgroud)

正确的

return ok( new { data= autoCompleteData, count= unfiltedDataCount});
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看更多示例:匿名类型 MSDN

  • 为什么投反对票?downvoters 是匿名类型的另一个例子:) (4认同)