ASP.net web api返回空对象列表

bog*_*aty 3 c# serialization asp.net-web-api

我有一个动作,鞋子从数据库返回有限的商店项目列表,这里是下面的代码

    [HttpGet]
    public IEnumerable<ProductInfo> GetTop(int amount = 5)
    {
        var mostPopulardProductIds = dbe.SalesOrderDetail.GroupBy(p => p.ProductID)
            .OrderByDescending(p => p.Count())
            .Take(amount)
            .Select(p => p.Key)
            .ToList();

        var result = dbe.Product
            .Where(p => mostPopulardProductIds.Contains(p.ProductID))
            .Select(p => new ProductInfo()
            {
                Id = p.ProductID,
                Name = p.Name
            }
            ).ToList();
        return result;
    }
Run Code Online (Sandbox Code Playgroud)

这是我的ProductInfo类

[DataContract]
public class ProductInfo
{
    public int Id { get; set; }
    public string Name { get; set; }
    //public
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试通过浏览器访问它时,我得到了空对象的列表,看起来像第一张图片

但调试器向我显示,该结果变量包含带有数据的普通对象

smlresult

调试器结果

我试图通过Request.CreateResponse方法返回结果,但这仍然不起作用

Nar*_*uto 6

请将DataMember属性添加到类属性,更改ProductInfo类

[DataContract]
public class ProductInfo
{
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public string Name { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

有关Data Member的更多信息