クライアント側の検証を使用していて、エラーが発生した場合にのみ以下のメッセージを表示します。フィールドが無効な場合に、これを一般的なエラーとして使用しようとしています。
現在
"*は必須フィールドを示します"
検証前でも常に表示されます。
<%: Html.ValidationSummary(false, "* denotes required field.")%>
モデルバインディングを使用して、クライアント側とMVCで検証を実行しています。
ブラウザーで開発者ツールを使用して検証要約テキストを検査すると、明確な場合はvalidation-summary-valid
、フォームエラーがある場合はvalidation-summary-errors
のクラスがあることがわかります。
したがって、次のようにcssルールを作成するだけです。
.validation-summary-valid {
display:none;
}
そして、すべてが良いはずです。
問題は、Html.BeginFormの前にHtml.ValidationSummaryを表示する必要があるという事実だと思います。それ以外の場合、メッセージは常に表示されます。
最初はページの読み込み時にListプロパティをチェックしていたので、新しいモデルを渡すことを考えました。次に、検証の概要が表示されました。からコードを変更したとき
return View(new myModel)
に
return View()
検証の概要はGetに表示されませんでした。プロパティをチェックするときにモデルにnullチェックを追加して、後者のコードを使用できるようにしました。