我注意到(甚至在网页API 2.1)只在第一个层次是深层参数类型得到填补(由模型绑定处理)。 那是 :
public class Person
{
public string Name { get; set; }
public PersonDetails Details { get; set; }
}
public class PersonDetails
{
public string Address { get; set; }
public int Age { get; set; }
}
// ...
public class PersonController : ApiController
{
[HttpPost]
public void ProcessPerson(Person person)
{
// person.Name is filled in correctly
// person.Details.Address and person.Details.Age are not filled in correctly. That is, they have default values (null and 0)
}
}
是否有此问题的一个简单的解决方案,除了消光了Person类,像这样?
public class PersonData
{
public string Name { get; set; }
public string Address { get; set; }
public int Age { get; set; }
}
后来编辑1:
- 如果我压扁Person类我正确地获取所有数据
- 该请求是通过岗位上做出了(而不是GET),因为我需要确保没有缓存和自投产以来改变状态时,它会是语义上不正确使用GET