【发布时间】:2016-12-22 15:29:43
【问题描述】:
我在后端使用 ASP.NET Web API 2,在前端使用 AngularJS。我想在 AngularJS 中显示一个树视图。
所以我的 ASP Web API 中需要一个嵌套模型。该模型目前如下所示:
public class Register
{
public int ID { get; set; }
public string Name { get; set; }
public List<Register> Children { get; set; }
}
和这样的控制器:
// GET: api/Registers
public IQueryable<Register> GetRegister()
{
return db.Register;
}
在我的数据库中,我添加了以下示例:
JSON 输出显示:
[{"ID":4,"Name":"RootFolder","Children":[{"ID":5,"Name":"Sub1","Children":null}]},{"ID":5,"Name":"Sub1","Children":null}]
第一个条目看起来不错,但我不想输出孩子本身。是否可以只输出带有Children 的RootFolder 而不是孩子本身?像这样:
{"ID":4,"Name":"RootFolder","Children":[{"ID":5,"Name":"Sub1","Children":null}]}
第二个问题是,当我想输入一个特定的文件夹 ID(例如ID 4(RootFolder))时。我只得到这个作为回应:
为什么没有子元素?控制器是这个:
// GET: api/Registers/5
[ResponseType(typeof(Register))]
public IHttpActionResult GetRegister(int id)
{
Register register = db.Register.Find(id);
if (register == null)
{
return NotFound();
}
return Ok(register);
}
总结:
- 如何过滤输出以仅显示每个子对象的
RootFolders 而不显示子对象本身? - 为什么在我指定特定 ID 时没有子代?
【问题讨论】:
标签: c# asp.net json rest asp.net-web-api