代码之家  ›  专栏  ›  技术社区  ›  ramamoorthy_villi

输入验证错误外键字段

  •  0
  • ramamoorthy_villi  · 技术社区  · 11 月前
    namespace App.Models
    {
        public class User 
        {
            public int Id { get; set; }
            public string Email { get; set; }
            public string Password { get; set; }
            public string Firstname { get; set; }
    
            public string Lastname { get; set; }
    
            public ICollection<Message> SentMessages { get; set; }
            public ICollection<Message> ReceivedMessages { get; set; }
        }
    }
    
    namespace App.Models
    {
        public class Message 
        {
            public int Id { get; set; }
            public string Content { get; set; }
            public DateTime CreatedAt {get; set;}
    
            public int FromUserId { get; set;}
            public int ToUserId { get; set; }
    
            public User FromUser { get; set; }
            public User ToUser { get; set; }
        }
    }
    

    MessageController.cs :

    public async Task<IActionResult> CreateMessage(Message message)
    {
        _context.Messages.Add(message);
        await _context.SaveChangesAsync();
        return Ok(message);
    }
    

    请求正文:

    {
        "Content": "Hi, how are you",
        "FromUserId": 1,
        "ToUserId": 2
    }
    

    我遇到了这个错误:

    “类型”:https://tools.ietf.org/html/rfc9110#section-15.5.1",
    “title”:“发生了一个或多个验证错误。”,
    “状态”:400,
    “错误”:{
    “ToUser”:[
    “ToUser字段是必需的。”
    ],
    “FromUser”:[
    “FromUser字段是必需的。”
    ]
    },
    }

    缺少什么?有人能帮忙吗?

    1 回复  |  直到 11 月前
        1
  •  1
  •   marc_s    11 月前

    课堂上 Message ,您需要允许FromUser、ToUser字段为空

      public User? FromUser { get; set; }
      public User? ToUser { get; set; }