【发布时间】: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