1
ASP.NET MVC 2フォームの検証と自分のスタイルの設定に問題があります。全体でハイライトを表示するには、ASP.NET MVC 2検証エラースタイル
<div class="registration-field">
<label>FullName</label><%= Html.TextBoxFor(x => x.FullName) %>
<%= Html.ValidationMessageFor(x => x.FullName)%>
</div>
問題がある:
フィールドには、次のHTMLを使用しています。ここでは
は、検証エラーと、私のフォームの例ですCSSクラス "registration-field-error"を最初のdivに追加する必要があります。<div class="registration-field registration-field-error">
<label>FullName</label><%= Html.TextBoxFor(x => x.FullName) %>
<%= Html.ValidationMessageFor(x => x.FullName)%>
</div>
登録フィールド・エラーのためのCSSは次のとおりです。
.registration-field-error
{
background-image:url(../Content/Images/box-background-error.png);
background-repeat:repeat-y;
}
私はではなく、クライアント - のために、サーバーの検証エラーのため正常に動作エラーのViewStateを、チェックするためにいくつかの複雑なロジックを行うことができます
サイドの検証:
<% if (ViewData.ModelState["FullName"] == null) { %>
<div class="registration-field">
<% } else { %>
<div class="registration-field registration-field-error">
<% } %>
私が最初に考えたのは、それが登録フィールド・エラーのクラスを使用する必要があるかどうかを判断するために、新しいHTMLヘルパーを作ることだった。
<%= Html.FormFieldFor(x => x.FullName, ViewData.ModelState) %>
次に、クライアント側の検証エラーを検出したときにMicrosoftMvc.Ajax.jsスクリプトを編集してクラスを追加します。
これを行うにはより良い方法がありますか?
ありがとうございました。私は、if($(this).html()。length <1)という行で、上記のtypoがあると思います。私はそれが長さ> 1であるべきだと思いますか? – mfanto
良いキャッチ。投稿を更新しました。 – Chandu
クライアント側の検証を使用している場合は、これを更新する必要があります。おそらく最も簡単な方法は、検証エラークラスが子 'div' /' span'から削除されたときに 'registration-field-error'クラスを削除するコードをXミリ秒+各コードをほぼ同じコードで実行することです。 –