代码之家  ›  专栏  ›  技术社区  ›  Marc Rasmussen

模型值为空

  •  0
  • Marc Rasmussen  · 技术社区  · 6 年前

    我有以下型号:

    [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);
    }
    

    enter image description here

    但是,当它到达 model 所有值都设置为 null

    有人能告诉我我做错了什么吗?

    更新

    当我试图删除它以便我的请求如下所示:

    enter image description here

    同样的事情发生了

    案例

        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; }
        }
    }
    
    3 回复  |  直到 6 年前
        1
  •  1
  •   Alex Riabov Vikrant    6 年前

    问题是,正如评论中已经提到的,你通过了 null 对于不可为空的属性,因此模型绑定器失败。您应该将模型更新为具有可空属性

    public class Case
    {
        public long? Id { get; set; }
    
        // rest of properties
    }
    

    或者不要在body中指定它(在本例中,它将长时间使用默认值-0)

        2
  •  1
  •   Shanaka Rusith    6 年前

    您从主体所需的类位于另一个对象中,因此无法将其映射到该类。身体应该是 { id: null ...} 而不是 { Case: { id: null ...} }

        3
  •  0
  •   Burim Hajrizaj    6 年前

    当你发布你的模型时应该是这样的

    应用程序系列:1 ... }

    现在要做的是在另一个JSON对象中发送Case对象。