[英]Subtraction on database value
我在將用戶輸入的數量減去當前庫存數量時遇到問題。 這是我的代碼。
這是我的一些代碼。 我在ItemReg
索引中有一個鏈接,點擊后將打開withdraw.cshtml
,當用戶在輸入框中輸入一個值時,該值將被扣除到數據庫中。
控制器
public IActionResult Withdraw(int? id, int quantity)
{
return View(_context.ItemRegs.Find(id));
}
public async Task<IActionResult> Withdraw([Bind("ItemId,Qty")] ItemReg itemReg,int? id, int quantity)
{
if (ModelState.IsValid) {
var itemreg = _context.ItemRegs.Find(id);
itemreg.Qty = itemreg.Qty - quantity;
_context.Update(itemReg);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(itemReg);
}
撤回.cshtml
@model Intranet.Models.ItemReg
@{
ViewData["Title"] = "View";
}
<h4>ItemReg</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="View">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="ItemId" />
<div class="form-group">
<label asp-for="Qty" class="control-label"></label>
<input name="quantity" asp-for="Qty" class="form-control"/>
<span asp-validation-for="Qty" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
您正在使用 id 作為Find(id)
的來源。 嘗試在您的Find(itemReg.ItemId)
傳遞itemReg.ItemId
,因為您的隱藏字段是ItemId
<input type="hidden" asp-for="ItemId" />
未使用模型中的綁定,請嘗試使用您的 model.Id
var itemreg = _context.ItemRegs.Find(itemReg.ItemId);
itemreg.Qty = itemreg.Qty - quantity;
_context.Update(itemReg);
我不確定這是否是一個好的做法,但這回答了我的問題。
public async Task<IActionResult> Withdraw([Bind("ItemId,Qty")] ItemReg itemReg,int quantity)
{
ViewBag.qty = quantity;
//if (ModelState.IsValid) {
var itemreg = _context.ItemRegs.Find(itemReg.ItemId);
itemreg.Qty = itemreg.Qty - ViewBag.qty;
itemReg.UserName = ViewBag.DisplayName;
itemreg.UserIP = HttpContext.Connection.RemoteIpAddress.ToString();
itemreg.UserDate = DateTime.Now.ToString("MM/dd/yyyy");
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
//}
//return View(itemReg);
}
我評論了 if 語句,然后在參數中添加了 int 數量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.