没有数据从控制器返回

时间:2012-07-26 12:32:59

标签: asp.net-mvc controller

我的ApiController应该返回数据:

// GET api/profile
public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
    IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
    return res;
}

当我在返回之前调试并检查res时,它有91个HubBasicProfile个对象的数据。

但是,当返回数据时,我看到91 {},空对象。根本没有数据。

任何人都知道为什么会这样?

由于 埃里克

2 个答案:

答案 0 :(得分:1)

调用ToList()方法。所以deferred执行不会发生。

public IEnumerable<HubBasicProfile> GetProjectProfiles()
{
    IEnumerable<HubBasicProfile> res = _bpss.GetAllBasicProfiles();
    return res.ToList();
}
  

延迟执行意味着表达式的评估是   推迟到实际需要实现的价值   集合。

编辑:根据评论

如果您要序列化这些项目,则需要确保您的课程已标记为可序列化/具有[DataMember] / [DataContract]属性。

答案 1 :(得分:0)

我想这是因为IEnumerable将使用延迟评估,并且不会被要求枚举它的集合。

当你正在调试时,你告诉调试器枚举'res'以便看到结果。

如果在返回之前执行.ToList()或类似操作,您会看到结果吗?