【发布时间】:2018-08-14 01:41:35
【问题描述】:
所以我正在研究一个模拟银行业务的项目。我正在尝试设置提款,但无法弄清楚如何将帐户 ID 自动传递给控制器,其中包含要提款的金额。我不断收到一个错误,它说金额有一个空条目,这意味着他们将金额作为 id 变量。
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Withdraw([Bind(Include = "balance")] int id, decimal amount)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
bankAccount bankAccount = db.Accounts.Find(id);
if (bankAccount == null)
{
return HttpNotFound();
}
if (bankAccount.type)
{
bankAccount.withdraw(amount);
}
else
{
if (amount > bankAccount.balance)
{
ModelState.AddModelError("Amount", "Checking accounts can't be overdraft.");
return View(bankAccount);
}
else
{
bankAccount.withdraw(amount);
}
}
if (ModelState.IsValid)
{
db.Entry(bankAccount).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Details", new { id = bankAccount.customerID });
}
return View(bankAccount);
}
查看
@model BankProject.bankAccount
@{
ViewBag.Title = "Withdraw";
}
<h2>Withdraw</h2>
@using (Html.BeginForm("Withdraw", "bankAccounts", FormMethod.Post))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>bankAccount</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.accountID)
<div class="form-group">
Remaining Balance: @Html.DisplayFor(model => model.balance) <br />
Withdraw amount: <input type="number" name="out" id="moneyW" />
<br />
<input type="submit" value="Withdraw" />
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
【问题讨论】:
-
你发布完整视图了吗(第一次使用未关闭)?
-
已更新,但确实没有太多遗漏
标签: c# html asp.net-mvc-4 razor