从 POST 操作验证模态后无法正常工作
Posted
技术标签:
【中文标题】从 POST 操作验证模态后无法正常工作【英文标题】:Modal not working properly after validating it from POST Action 【发布时间】:2021-10-26 01:06:31 【问题描述】:我在我的应用程序中使用模态局部视图。我正在验证我的模型是否有错误我正在使用 ModelState.AddModelError() 返回模型,但它不能正常工作。另外,我无法加载 SelectLists。
public ActionResult StockOut(StockOut model)
if (ModelState.IsValid)
var stock = (from s in db.Stocks where s.ProductId == model.ProductId select s).FirstOrDefault();
if (stock.Quantity > 0 && model.Quantity <= stock.Quantity)
var weight = ((from p in db.Products where p.Id == model.ProductId select p).FirstOrDefault().NetWeight) * model.Quantity;
stock.Quantity -= model.Quantity;
stock.TotalWeight -= weight;
StockOut entity = new StockOut()
DriverId = model.DriverId,
LastUpdated = DateTime.Now,
ProductId = model.ProductId,
Quantity = model.Quantity,
TotalWeight = weight
;
db.StockOut.Add(entity);
db.SaveChanges();
return RedirectToAction("Index");
else
ModelState.AddModelError("Quantity", "Please Enter A Valid Quantity");
ViewBag.ProductId = new SelectList(db.Products.ToList(), model.ProductId);
ViewBag.DriverId = new SelectList(db.Products.ToList(), model.DriverId);
ViewBag.ProductId = new SelectList(db.Products.ToList(), model.ProductId);
ViewBag.DriverId = new SelectList(db.Users.ToList(), model.DriverId);
return PartialView(model);
提交前:
出现错误后
【问题讨论】:
不幸的是,通过图像调试应用程序几乎是不可能的 如果您不向我们展示一些代码,我们无法猜测您在做什么(错误或正确) 对不起,我以为我已经添加了它。我的错! 【参考方案1】:修复你选择列表,你创建它们两次,删除一组(在 if 中)
ViewBag.ProductId = new SelectList(db.Products.ToList(),"Id", "Name" , model.ProductId);
///Are you sure that you have have to use products again?
ViewBag.DriverId = new SelectList(db.Products.ToList(),"Id",
"Name" , model.DriverId);
如果你想使用 AddModelError 你必须添加到表单
@html.ValidationSummary(false)
【讨论】:
不,我必须创建两次。如果模型状态为真,if 条件将起作用。然后将再次需要第二组,因为它要返回视图。如果我删除第二组,则会出现错误,因为视图找不到列表。以上是关于从 POST 操作验证模态后无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
Qt如何使用模态(exec())实现等待效果,并同时进行其他操作?(先显示等待,再进行其他操作!)