我正在为慈善机构在一个简单的拍卖网站上工作。我有一个用于销售项目的项目模型,以及一个“投标”视图,用户可以在其中输入出价并提交。该出价是在Item控制器内收到的:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Bid(int itemID, int bidAmount)
{
if (ModelState.IsValid)
{
Item item = db.Items.Find(itemID);
if (bidAmount >= item.NextBid)
{
item.Bids++;
item.CurrentBid = bidAmount;
item.HighBidder = HttpContext.User.Identity.Name;
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();
}
else
{
// Already outbid
}
return View(item);
}
return RedirectToAction("Auction");
}
我想知道如何向用户显示服务器端验证。例如,在上面的代码中,可能是提交的出价金额不再足够。在这种情况下,我想向用户显示一条消息,说他们的出价已经过高等。
如何将该信息传递回视图以显示适当的消息?我希望用户看到与以前相同的项目页面视图,更新编辑框中的值并显示消息-类似于eBay。谢谢。
您应该查看ModelState属性的AddModelError方法。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Bid(int itemID, int bidAmount)
{
if (ModelState.IsValid)
{
Item item = db.Items.Find(itemID);
if (bidAmount >= item.NextBid)
{
item.Bids++;
item.CurrentBid = bidAmount;
item.HighBidder = HttpContext.User.Identity.Name;
db.Entry(item).State = EntityState.Modified;
db.SaveChanges();
}
else
{
// Already outbid
ModelState.AddModelError("", "Already outbid");
}
return View(item);
}
return RedirectToAction("Auction");
}
要在视图中显示消息,您需要一个ValidationSummary
@ Html.ValidationSummary(true)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句