Ich habe einen Bearbeitungsbildschirm und ich bekomme einen Fehler. Der Benutzer kann das Objekt bearbeiten, aber Fremdschlüssel wird null. Und das verursacht ein großes Problem. Warum bekommt es nicht den Fremdschlüssel? Hier ist mein Code ...In MVC, Edit-Funktion fehlt der Fremdschlüssel
Erste Funktion ist perfekt, aber die mit HttpPost verliert TcmbCurrencyId Wert, der ein Fremdschlüssel ist. Wie kann ich das beheben?
public ActionResult Edit(int? Id)
{
if (Id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
TmcbExchangeRate rate = db.TmcbExchangeRate.Where(x=>x.Id==Id).First();
if (rate == null)
{
return HttpNotFound();
}
return View(rate);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,TcmbCurrencyId,RateDate,ForexBuying,ForexSelling,BanknoteBuying,BanknoteSelling")] TmcbExchangeRate tmcbExchangeRate)
{
if (ModelState.IsValid)
{
db.Entry(tmcbExchangeRate).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(tmcbExchangeRate);
}
Sind auch Sie 'TcmbCurrencyId' in der Ansicht als einen Eingang (versteckt oder auf andere Weise)? '@ Html.HiddenFor (Modell => Modell.TcmbCurrencyId)'? Wenn nicht, wird es beim Senden nicht an den Controller gesendet. Nur Werte, die im Formular verwendet werden, werden beim Senden an den Controller zurückgegeben. – Nkosi