web-dev-qa-db-ja.com

Html.ValidationSummary(false、 "message")は、ページの読み込み時でも常に表示されます

クライアント側の検証を使用していて、エラーが発生した場合にのみ以下のメッセージを表示します。フィールドが無効な場合に、これを一般的なエラーとして使用しようとしています。
現在

"*は必須フィールドを示します"

検証前でも常に表示されます。

<%: Html.ValidationSummary(false, "* denotes required field.")%>

モデルバインディングを使用して、クライアント側とMVCで検証を実行しています。

43
MondayPaper

ブラウザーで開発者ツールを使用して検証要約テキストを検査すると、明確な場合はvalidation-summary-valid、フォームエラーがある場合はvalidation-summary-errorsのクラスがあることがわかります。

したがって、次のようにcssルールを作成するだけです。

.validation-summary-valid {
    display:none;
}

そして、すべてが良いはずです。

84
Ryan O'Neill

問題は、Html.BeginFormの前にHtml.ValidationSummaryを表示する必要があるという事実だと思います。それ以外の場合、メッセージは常に表示されます。

4
Mark P

最初はページの読み込み時にListプロパティをチェックしていたので、新しいモデルを渡すことを考えました。次に、検証の概要が表示されました。からコードを変更したとき

return View(new myModel)

return View()

検証の概要はGetに表示されませんでした。プロパティをチェックするときにモデルにnullチェックを追加して、後者のコードを使用できるようにしました。

0