我的员工(客户)日记基于CustomerID see this image。
如果我要创建新日记,我需要客户ID。
如果我使用数据库中存在的正确CustomerId,那么它可以正常工作,但是如果我使用的是不正确的customerID,那么它会向我显示视图并显示有关其他字段的错误。
我只想看到错误消息“ID not found”
这是我的创建日记代码和图像@nd image如果我输错了customerID,我只想看一条错误消息 我的创建日记的控制器代码
// POST:/ Diary / Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Diary diary)
{
if (ModelState.IsValid)
{
cd.Diaries.Add(diary);
cd.SaveChanges();
return RedirectToAction("Index","Home");
}
return PartialView("_CreateDiary");
}
答案 0 :(得分:1)
首先根据输入的CustomerId
添加要检查的条件,并根据需要添加模型错误:
<强>控制器强>
if (!cd.Customers.Any(c => c.Id == diary.CustomerId)
{
ModelState.AddModelError("CustomerId", "Customer not found");
}
然后将以下内容添加到您的视图(或ValidationSummary)
查看强>
@Html.ValidationMessage("CustomerId")
我建议显示用户选择的客户列表,这样可以改善用户界面体验并避免这样的错误。
完整控制器代码
[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");
}