Asp.net core mvc 如何修复Postman中PUT json发送的空对象?

Asp.net core mvc 如何修复Postman中PUT json发送的空对象?,asp.net-core-mvc,asp.net-core-2.1,Asp.net Core Mvc,Asp.net Core 2.1,我将postman的json放在body中,希望更新一个名为musiclistlistem的实体 调试时,我发现MusicListItem项为null 这是我的MusicList控制器上的方法: [HttpPut("{id}")] [Route("API/[Controller]/UpdateMusicListListItem")] public async Task<IActionResult> PutMusicListListItem(int id, [F

我将postman的json放在body中,希望更新一个名为
musiclistlistem
的实体

调试时,我发现
MusicListItem
项为
null

这是我的
MusicList控制器上的方法:

    [HttpPut("{id}")]
    [Route("API/[Controller]/UpdateMusicListListItem")]
    public async Task<IActionResult> PutMusicListListItem(int id, [FromBody]MusicListListItem item)
    {

        MusicListListItem myMLLI = item; 
        if (id != item.MusicListListItemId)
        {
            return BadRequest();
        }

        _context.Entry(item).State = EntityState.Modified;
        await _context.SaveChangesAsync();

        return NoContent();
    }
我希望API控制器的
putMusicListItem
方法从Postman的PUT请求主体接收
MusicListItem
对象,但它返回为
null

我最终得到了一份工作

NullReferenceException:对象引用未设置为对象的实例

错误

以下是所要求的其他信息:

MusicListItem对象定义:

using MusicListsApp.Domain;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;

namespace Domain
{
    public class MusicListListItem
    {
        public int MusicListListItemId { get; set; }

        public int MusicListId { get; set; }

        public int ListItemId { get; set; }

        public virtual MusicList MusicList { get; set; }

        public virtual ListItem ListItem { get; set; }

        public int Rank { get; set; }

        public string Comments { get; set; }

        public string ImageUrl { get; set; }

        public DateTime DateModified { get; set; }

        public bool Deleted { get; set; }
    }
}
邮递员截图:


我通过创建GETMusicListListItemById方法获得了一个更简单的MusicListItem json对象,从而成功地将其放入API:

{
"musicListListItemId": 4,
"musicListId": 1,
"listItemId": 1019,
"musicList": null,
"listItem": null,
"rank": 2,
"comments": null,
"imageUrl": null,
"dateModified": "0001-01-01T00:00:00",
"deleted": false
}

我通过创建GETMusicListListItemById方法获得了一个更简单的MusicListListItem json对象,从而成功地将其放入API:

{
"musicListListItemId": 4,
"musicListId": 1,
"listItemId": 1019,
"musicList": null,
"listItem": null,
"rank": 2,
"comments": null,
"imageUrl": null,
"dateModified": "0001-01-01T00:00:00",
"deleted": false
}

那么-你能发布一下
音乐分类项目的定义吗。还有,邮递员的要求到底是什么样的?您是如何在正文中指定JSON的?是否在标题上设置了内容类型(设置为application/json)。听起来邮递员请求没有以控制器期望的方式发送请求。我们需要更多的细节。谢谢你的回复!我在原始帖子中添加了您请求的其他信息。您可能需要在Request中将内容类型设置为application/Json。在正文页最右侧的选项卡和Postman界面的标题页中,将内容类型设置为application/Json。但是,您关于MusicListItem定义的评论促使我创建了一个方法,返回MusicListItem的json,我从中得到了一个更简单的定义。我使用这个更简单的json对象成功地将其与Postman一起放入控制器url。谢谢你帮我想清楚这一点。那么-你能发布一下
MusicListItem
的定义吗。还有,邮递员的要求到底是什么样的?您是如何在正文中指定JSON的?是否在标题上设置了内容类型(设置为application/json)。听起来邮递员请求没有以控制器期望的方式发送请求。我们需要更多的细节。谢谢你的回复!我在原始帖子中添加了您请求的其他信息。您可能需要在Request中将内容类型设置为application/Json。在正文页最右侧的选项卡和Postman界面的标题页中,将内容类型设置为application/Json。但是,您关于MusicListItem定义的评论促使我创建了一个方法,返回MusicListItem的json,我从中得到了一个更简单的定义。我使用这个更简单的json对象成功地将其与Postman一起放入控制器url。谢谢你帮我想清楚。