我有以下模型:
[HttpPost("/case")]
public async Task<IActionResult> CreateCase([FromBody] Case model)
{
if (!ModelState.IsValid)
return BadRequest();
_context.Cases.Add(model);
await _context.SaveChangesAsync();
return Success(model);
}
我在这里发布以下内容:
但是,当到达model
时,所有值都设置为null
。
有人可以告诉我我在做什么错吗?
更新
当我尝试将其删除以使我的请求看起来像这样时:
发生同样的事情
案例
namespace API.Models
{
public class Case
{
public long Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Size { get; set; }
public long BuildingTypeId { get; set; }
public BuildingType BuildingType { get; set; }
public long BuildingPurposeId { get; set; }
public BuildingPurpose BuildingPurpose { get; set; }
public long ApplicationUserId { get; set; }
public ApplicationUser ApplicationUser { get; set; }
public long LocationId { get; set; }
public Location Location { get; set; }
public long FireStrategyId { get; set; }
public FireStrategy FireStrategy { get; set; }
public List<CaseMaterial> Materials { get; set; }
public List<Installation> Installations { get; set; }
public List<DocumentationFile> Files { get; set; }
}
}
答案 0 :(得分:1)
您体内需要的类位于另一个对象内,因此无法将其映射到该类。正文应为{ id: null ...}
而不是{ Case: { id: null ...} }
答案 1 :(得分:1)
问题已经在注释中提到,问题是您为不可空的属性传递了null
,因此模型绑定程序失败。您应该更新模型以具有可为空的属性
public class Case
{
public long? Id { get; set; }
// rest of properties
}
或者不要在主体中指定它(在这种情况下,它将具有默认值-长为0)
答案 2 :(得分:0)
发布模型时,应该是这样
{ ApplicationUserId:1 ... }
您现在正在做的是在另一个JSON对象中发送Case对象。