C#web api返回列表对象列表

时间:2016-04-14 07:11:23

标签: c# api asp.net-web-api

我有一个典型的回应

ResultModel
{
    Bool Result,
    Object Response
}

我想发送带产品的类别

var response = new List<Category> 
{
    new Category {Name = "1", Products = new List<Product> {new Product {Name = "1_1"}, new Product {Name = "1_2"}} },
    new Category {Name = "2", Products = new List<Product> {new Product {Name = "2_1"}, new Product {Name = "2_2"}} },
    new Category {Name = "3", Products = new List<Product> () },
}

我的回答

return new ResultModel
        {
            Response = response,
            Result = true
        };

但我无法收到Products属性作为回应。 谁知道为什么? 感谢

1 个答案:

答案 0 :(得分:2)

您只获取属性Name,因为它是原始类型,并且序列化程序知道如何序列化和反序列化它。如果要获得更复杂的对象,必须确保序列化程序知道如何操作。

您可以在对象中实现Iserializable接口,并且在确定可以序列化之后,可以在webApi中使用它。

https://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable(v=vs.110).aspx

在这里你有一个关于这个Using Serializable attribute on Model in WebAPI

的SO帖子