1. ホーム
  2. c#

[解決済み] ModelState.IsValidが失敗したら、エラーメッセージを表示する?

2023-02-19 07:37:25

質問

コントローラ内にこのような関数があります。

[HttpPost]
public ActionResult Edit(EmployeesViewModel viewModel)
{
    Employee employee = GetEmployee(viewModel.EmployeeId);
    TryUpdateModel(employee);

    if (ModelState.IsValid)
    {
        SaveEmployee(employee);
        TempData["message"] = "Employee has been saved.";
        return RedirectToAction("Details", new { id = employee.EmployeeID });
    }

    return View(viewModel); // validation error, so redisplay same view
}

失敗が続いています。 ModelState.IsValid は false を返し続け、ビューを再表示し続けます。しかし、何がエラーなのかさっぱりわかりません。

エラーを取得し、ユーザーに再表示する方法はありますか?

どのように解決するのですか?

アクションの中で特別なことをしなくても、ビューの中で Html.ValidationSummary() を使ってすべてのエラーメッセージを表示するか、あるいは Html.ValidationMessageFor()を使用します。 でモデルの特定のプロパティに対するメッセージを表示します。

もしまだアクションやコントローラの中からエラーを見る必要がある場合は ModelState.Errors プロパティを参照してください。