如果在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");
    }

如果在mvc4中找不到ID,则显示错误消息

首先根据输入的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");
}