我正在从邮递员的正文中插入json,希望更新名为MusicListListItem
的实体。
调试时,我发现MusicListListItem
项是null
。
这是我在MusicListsController
上使用的方法:
[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();
}
这是我放入Postman's Body部分并选择了JSON(application / json)的json:
{
"musicListListItemId": 4,
"musicListId": 1,
"listItemId": 1019,
"listItem": {
"artist": null,
"listItemId": 1019,
"title": "test33_tryAddRelation",
"dateCreated": "0001-01-01T00:00:00",
"musicListListItem": []
},
"rank": 2,
"comments": null,
"imageUrl": null,
"dateModified": "0001-01-01T00:00:00",
"deleted": false
}
我希望API控制器的PutMusicListListItem
方法能够从Postman的PUT请求的正文中接收MusicListListItem
对象,但是它以null
的形式返回。
我最终得到
NullReferenceException:对象引用未设置为对象的实例。
错误。
这是所要求的其他信息:
musicListListItem对象定义:
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; }
}
}
邮递员的屏幕截图:
答案 0 :(得分:0)
通过使用我通过创建GETMusicListListItemById方法获得的更简单的MusicListListItem json对象,我能够成功地将API输入到该API:
PATCH