Asp.net core mvc 如何修复Postman中PUT json发送的空对象?
我将postman的json放在body中,希望更新一个名为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
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。谢谢你帮我想清楚。