如何在.NET Core API中将多个实体或json作为参数传递

时间:2019-08-28 12:41:27

标签: .net-core odata

我是编程新手。我阅读了有关.net核心API的教程,但我注意到每一篇教程都仅展示了如何将实体类作为参数传递。如果我要传递如下所示的实体类组合,是否表示我需要向服务器提交多个发布请求?

JSON:

{
"postId": "123",
"postText": "test item", 
"items": [
    {
        "itemId": "t3st", 
        "postId": null
    },
    {
        "itemId": "t3st3", 
        "postId": null
    }
] }

C#:

public class Post
{
    [Key]
    public string postId { get; set; }
    public string postText { get; set; }
}

public class Item
{
    [Key]
    public string itemid{ get; set; }
    public string postId { get; set; } 
 }

public IActionResult Post([FromBody] Post post)
{
    return Ok(data);
}

2 个答案:

答案 0 :(得分:2)

public class Post
{
    [Key]
    public string postId { get; set; }
    public string postText { get; set; }
    public List<Item> items {get; set;}

}

public class Item
{
    [Key]
    public string itemid{ get; set; }
    public string postId { get; set; } 
 }

您需要像上面那样更改对象 然后您需要返回类型List<Post>

答案 1 :(得分:0)

您也可以创建一个viewModel来将json解析为一个对象。像这样。

   public class Post
{
    [Key]
    public string postId { get; set; }
    public string postText { get; set; }
    public IEnumerable<Item> items {get; set;}

}

public class Item
{
    [Key]
    public string itemid{ get; set; }
    public string postId { get; set; } 
 }

public IActionResult Post([FromBody] Post post)
    {
        var entity = JsonConvert.DeserializeObject<PostViewModel>(post.ToString())
        return Ok(data);
    }