如果在mvc4中找不到ID,则显示错误消息
本文关键字:显示 错误 消息 ID mvc4 找不到 如果 | 更新日期: 2023-09-27 18:19:32
我的员工(客户)日记基于CustomerID,请参阅此图。
如果我正在创建新日记,我需要CustomerID。
若我使用的是数据库中正确的CustomerId,则它可以正常工作,但若我使用了不正确的CustomerId,则它会向我显示视图并显示有关其他字段的错误。
我只想看到错误消息说"ID未找到"
这是我的创建日记代码和图片@nd图片如果我输入了错误的customerID,我只想看到一条错误消息我的控制器代码创建日记
//POST:/日记/创建
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Diary diary)
{
if (ModelState.IsValid)
{
cd.Diaries.Add(diary);
cd.SaveChanges();
return RedirectToAction("Index","Home");
}
return PartialView("_CreateDiary");
}
首先根据输入的CustomerId
添加要检查的条件,并在需要时添加一个模型错误:
控制器
if (!cd.Customers.Any(c => c.Id == diary.CustomerId)
{
ModelState.AddModelError("CustomerId", "Customer not found");
}
然后将以下内容添加到您的视图(或验证摘要)中
查看
@Html.ValidationMessage("CustomerId")
我建议显示用户选择的客户列表,这将改善UI体验,也可以避免类似的错误。
完整的控制器代码
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Diary diary)
{
if (!cd.Customers.Any(c => c.Id == diary.CustomerId)
{
ModelState.AddModelError("CustomerId", "Customer not found");
}
if (ModelState.IsValid)
{
cd.Diaries.Add(diary);
cd.SaveChanges();
return RedirectToAction("Index","Home");
}
return PartialView("_CreateDiary");
}