記事詳細
- 投稿日
- 2026年06月09日18時16分
-
タイトル
-
ASP.NET MVC: Controller側のif (ModelState.IsValid)がfalseの場合エラーを発生するオブジェクトを見つける方法はありますか?
- 内容
-
はい、ASP.NET MVC / ASP.NET Core MVC では、
ModelState.IsValidがfalseの場合、ModelStateの中にどのプロパティがエラーを持っているかを簡単に調べることができます。ModelStateはModelStateDictionary型で、各キー(プロパティ名)に対してModelStateEntryがあり、その中のErrorsコレクションにエラー情報が入っています 1 2。例: エラーのあるプロパティとメッセージを取得する
ポイント
ms.Keyがモデルのプロパティ名(例:"Title","ReleaseDate")。ms.Value.ErrorsにModelErrorオブジェクトが入り、ErrorMessageまたはExceptionで詳細を取得できます。- バインド変換エラー(例:
"abc"をintに変換しようとした場合)はErrorMessageが空で、Exceptionに詳細が入ることがあります 2。 - Razor ビューであれば、
@Html.ValidationSummary()や@Html.ValidationMessageFor()を使えば自動的に表示されます。
簡易デバッグ用ワンライナー
デバッグ中に即座に確認したい場合は、Watch ウィンドウや即時実行ウィンドウで以下を実行できます 1。
もしご希望であれば、このエラー取得処理を共通メソッド化して、どのコントローラーからでも呼び出せるようにするサンプルも作れますが、作りますか?
そうすればModelStateの中身を毎回 LINQ で書かなくても済みます。1-Stackoverflow.com 2-Stackoverflow.com
Powered by Froala Editor
-
添付画像
-
画像はありません
- Genreのカテゴリ-名
- Controllers