【发布时间】:2016-04-09 12:51:34
【问题描述】:
我有一个编辑屏幕,但出现错误。用户可以编辑对象,但外键为空。而且,这会导致一个巨大的问题。为什么它没有得到外键?这是我的代码...
第一个函数是完美的,但是带有HttpPost的函数丢失了TcmbCurrencyId的值,它是一个外键。我该如何解决这个问题?
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);
}
【问题讨论】:
-
您是否在视图中包含
TcmbCurrencyId作为输入(隐藏或其他方式)?@Html.HiddenFor(model => model.TcmbCurrencyId)?如果不是,则不会在提交时将其发布到控制器。只有表单中使用的值会在提交时发回控制器。
标签: c# asp.net-mvc http-post