我试图使用OK函数将复杂对象作为JSON与.NET Core 2.1 API一起返回。
复杂对象由一组匿名对象和整个未过滤数据集的计数组成。
我正在使用一个期望这种格式的JSON的JavaScript库:
{
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});
您使用的语法错误。
不正确
return ok( new { data: autoCompleteData, count: unfiltedDataCount});
正确
return ok( new { data= autoCompleteData, count= unfiltedDataCount});
你可以在这里看到更多的例子:Anonymous types MSDN。