Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 发布到Web Api时,实体类型的子项为null_Json_Asp.net Core Webapi - Fatal编程技术网

Json 发布到Web Api时,实体类型的子项为null

Json 发布到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

我正在尝试将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? 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}]}