私は真新しい MVC3 サイトを作成しています。web.config で有効になっているクライアント側の検証
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
シナリオ #1: (クライアント側の) 検証が失敗した後に生成された出力 HTML:
<span data-valmsg-replace="true" data-valmsg-for="UserName" class="field-validation-error">
<span htmlfor="UserName" generated="true" class="">Please enter an email address</span>
</span>
最も内側のタグに class="" が含まれるネストされた span タグに注意してください。
シナリオ #2: カスタムのサーバー側検証。同じ web.config 構成を使用して、カスタム ビジネス ルールを確認するための検証をサーバーに追加しました。検証が失敗したため、ModelState にエラーを追加します。
生成された HTML は次のようになります。
<span data-valmsg-replace="true" data-valmsg-for="UserName" class="field-validation-error">Please enter a valid email address</span>
ネストされたタグではなく、span タグが 1 つだけ生成されたことに注意してください。
生成された HTML には 2 つの異なる最終結果があるため、.field-validation-error クラスのスタイルを設定することはできません。
要約: クライアント側の検証では 1 つのスパン タグのみが生成され、サーバー側の検証では 2 つのスパン タグが生成されます。
質問: これはフレームワークのインデントされた動作ですか、それとも何か間違っていますか?