![](/img/trans.png)
[英]Model Key and Foreign Key parametres are null in controller after POST action
[英]Send post request with foreign key - controller set null for foreign data
當我從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; }
}
該cotroller:
// 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);
}
您的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
}
解決了
public class Korpa
{
public int Id { get; set; }
public int Id_korisnika { get; set; }
[ForeignKey("Id_korisnika")]
public Korisnik Korisnik { get; set; }
public int Id_Artikla { get; set; }
[ForeignKey("Id_Artikla")]
public Artikal Artikal { get; set; }
}
只需添加[ForeignKey(“外鍵名稱”)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.