Json 发布到Web Api时,实体类型的子项为null
我正在尝试将Json发布到web apiJson 发布到Web Api时,实体类型的子项为null,json,asp.net-core-webapi,Json,Asp.net Core Webapi,我正在尝试将Json发布到web api { "Name" :"Irfan", "Roles":[ {"RoleID" : 1} , {"RoleID" : 2}] } 在WebAPI中,我有这样的模型 public class Role { public Int32 ID { get; set; } public Int32? RoleID { get; set; } public Int32? U
{
"Name" :"Irfan",
"Roles":[
{"RoleID" : 1}
,
{"RoleID" : 2}]
}
在WebAPI中,我有这样的模型
public class Role
{
public Int32 ID { get; set; }
public Int32? RoleID { get; set; }
public Int32? UserID { get; set; }
}
public class User
{
public string Name { get; set; }
public List<Role> Roles { get; set; }
}
公共类角色
{
公共Int32 ID{get;set;}
public Int32?RoleID{get;set;}
公共Int32?用户ID{get;set;}
}
公共类用户
{
公共字符串名称{get;set;}
公共列表角色{get;set;}
}
我正在获取“Name”值,但“Roles”为空。如何获取“角色”?在构造函数中创建角色对象
public class User
{
public User()
{
this.Roles = new List<Role>();
}
public string Name { get; set; }
public List<Role> Roles { get; set; }
}
公共类用户
{
公共用户()
{
this.Roles=新列表();
}
公共字符串名称{get;set;}
公共列表角色{get;set;}
}
请参考以下测试时有效的代码示例:
[Route("test")]
public ActionResult<IEnumerable<string>> test(User user)
{
return new string[] { "value1", "value2" };
}
使用Fiddler/Postman、.NETCore检查您的请求将有助于自动将json映射到服务器端的对象 谢谢你的回复。问题在我这边。我没有为列表角色{get;set;}使用“public”访问说明符。好的,我看到了您的更新。因此,您应该回答自己的问题,而不是在没有解释的情况下更新问题。您不会获取角色值,因为在角色类“ID”列中,它不可为null。您可以将其设置为null,或者在json对象中传递“ID”的值。您不会获取角色值,因为在角色类“ID”中列不可为Null—您可以使其为Null,也可以在json对象中传递“ID”的值
POST https://localhost:XXXX/api/values/test
Content-Type: application/json
{"Name" :"Irfan","Roles":[{"RoleID" : 1},{"RoleID" : 2}]}