使用外键发送发布请求-控制器为外来数据设置为null

时间:2018-11-20 13:31:46

标签: c# .net angular

当我从Microsoft sql Server发送到数据库时,工作正常。 但是,当从邮递员或角度发送邮寄请求时,外部数据始终为空。 我不知道哪里出了问题。  这是课程:

public class Korpa
{
    public int Id { get; set; }
    public int Id_korisnika { get; set; }
    public Korisnik Korisnik { get; set; }
    public int Id_Artikla { get; set; }
    public Artikal Artikal { get; set; }

}
public class Artikal
{
    public int Id { get; set; }
    [Required(ErrorMessage = "Unesite naziv grupe artikla!")]
    [StringLength(255)]
    public string Grupa { get; set; }
    [Required(ErrorMessage = "Unesite ime artikla!")]
    [StringLength(255)]
    public string Naziv_artikla { get; set; }
    public decimal? Nabavna_cena { get; set; }
    public decimal? Prodajna_cena { get; set; }
    public short? kolicina { get; set; }
    public string url_slike { get; set; }
    public string Specifikacija { get; set; }
}
public class Korisnik
{
    public int Id { get; set; }
    [Required(ErrorMessage = "Unesite vase ime!")]
    [StringLength(255)]
    public string Ime { get; set; }
    [Required(ErrorMessage = "Unesite vase prezime!")]
    [StringLength(255)]
    public string Prezime { get; set; }
    [Required(ErrorMessage = "Unesite korisnicko ime!")]
    [StringLength(255)]
    public string Username { get; set; }
    [Required(ErrorMessage = "Unesite sifru!")]
    [StringLength(255)]
    public string Sifra { get; set; }
    [Required(ErrorMessage = "Unesite email")]
    [StringLength(255)]
    public string Email { get; set; }
    [Required(ErrorMessage = "Unesite vasu adresu!")]
    [StringLength(255)]
    public string Adresa { get; set; }
    [Required(ErrorMessage = "Unesite vas broj telefona!")]
    [StringLength(255)]
    public string Broj_telefona { get; set; }
    public string jmbg { get; set; }
    public int Nivo { get; set; }
}

这个婴儿推车:

    // GET: api/Korpas/5
    [ResponseType(typeof(Korpa))]
    public IHttpActionResult GetKorpa(int id)
    {
        var korpa = db.Korpa
            .Include(c => c.Korisnik)
            .Include(c => c.Artikal)
            .SingleOrDefault(c => c.Id == id);

        if (korpa == null)
        {
            return NotFound();
        }

        return Ok(korpa);
    }


    // POST: api/Korpas
    [ResponseType(typeof(Korpa))]
    public IHttpActionResult PostKorpa(Korpa korpa)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Korpa.Add(korpa);
        db.SaveChanges();
        return CreatedAtRoute("DefaultApi", new { id = korpa.Id }, korpa);
    }

Where is null, this send data from post request, where is not, then send sql query from ms sql server

2 个答案:

答案 0 :(得分:0)

您的POST方法收到一个Korpa模型,但是该实体没有 Artikal_Id 属性,您必须将该属性添加到Korpa模型中,以便Web api可以执行序列化。

public class Korpa
{
    public int Id { get; set; }
    public int Id_korisnika { get; set; }
    public Korisnik Korisnik { get; set; }
    public int Id_Artikla { get; set; }
    public Artikal Artikal { get; set; }
    public int Artikal_Id {get; set;} // Add this property

}

答案 1 :(得分:0)

已解决

CCC

只需添加[ForeignKey(“外键名称”)]