Asp.net web api ASP.NET Web API深度模型绑定
我注意到(甚至在WebAPI2.1中)深层参数类型仅在第一层上填充(由模型绑定器处理)。即:Asp.net web api ASP.NET Web API深度模型绑定,asp.net-web-api,controller,model-binding,formatter,Asp.net Web Api,Controller,Model Binding,Formatter,我注意到(甚至在WebAPI2.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;
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对象在发布之前在客户端上是什么样子的?另外,如果您将客户端窗体绑定到PersonController中返回Person类的GET调用,它应该可以正常工作。谢谢