1. ホーム
  2. html

[解決済み] ASP.NET MVCでModel State Errorsのコレクションを取得するにはどうすればよいですか?

2022-05-04 22:29:22

質問

ビューでエラーのコレクションを取得するにはどうすればよいですか?

Html HelperのValidation SummaryやValidation Messageは使いたくありません。その代わりに、エラーをチェックし、もしあれば特定のフォーマットで表示したいのです。また、入力コントロールでは、特定のプロパティエラーをチェックし、入力にクラスを追加したいと思います。

追伸:私はSpark View Engineを使用していますが、アイデアは同じであるべきです。

そこで、次のようなことができるのではないかと考えました。

<if condition="${ModelState.Errors.Count > 0}">
  DisplayErrorSummary()
</if>

....and also...

<input type="text" value="${Model.Name}" 
       class="?{ModelState.Errors["Name"] != string.empty} error" />

....

とか、そんな感じです。

アップデイト

最終的な解答はこんな感じになりました。

<input type="text" value="${ViewData.Model.Name}" 
       class="text error?{!ViewData.ModelState.IsValid && 
                           ViewData.ModelState["Name"].Errors.Count() > 0}" 
       id="Name" name="Name" />

これは、このプロパティにエラーがある場合にのみ、エラーCSSクラスを追加します。

解決方法は?

<% ViewData.ModelState.IsValid %>

または

<% ViewData.ModelState.Values.Any(x => x.Errors.Count >= 1) %>

と、特定のプロパティのために...

<% ViewData.ModelState["Property"].Errors %> // Note this returns a collection