是否可以绑定发布请求,如下所示:
{
"name": "Tree Node 1",
"children":
{
"name": "Tree Node 2",
"children":
{
"name": "Tree Node 3",
"children": [],
"data":
{
}
}
}
}
使用[From Body]属性或仅适用于没有“继承”的简单请求?
答案 0 :(得分:1)
那么,首先是children
一个数组或对象?你使用两者。
我说它可能应该是一个数组,所以类似于:
{
"name": "Tree Node 1",
"children":
[{
"name": "Tree Node 2",
"children":
[{
"name": "Tree Node 3",
"children": [],
"data":
{
}
}]
}]
}
然后你只需创建一个引用自己的模型:
public class TreeNode
{
public string Name { get; set; }
public ICollection<TreeNode> Children { get; set; }
public IDictionary<string, string> Data { get; set; }
}
您没有在data
对象中放置任何内容,因此无法猜测其结构是什么。在这里,我使用了Dictionary<string, string>
来使它可以包含任何键值对。
现在让你的控制器动作如下:
[HttpPost("test")]
public IActionResult Test([FromBody] TreeNode model)
{
return Ok();
}
答案 1 :(得分:1)
你需要这样的东西:
public class MyClass
{
public string Name{get;set;}
public IEnumerable<MyClass> Children{get;set;}
public Data Data {get;set;}
}
public class Data
{
//properties of data
}