1

私の見解では(aspx)

Html.ValidationMessage("FirstName") 

のリターンを与えています

<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>

それでも

ViewContext.ViewData.ModelState.Values

FirstNameのエントリが含まれていません。

電話したら

Html.ValidationSummary()

何も返されません。

何が起こっている?これらの値はどこで探す必要がありますか?

これは私のビューの初期ロードであるため、検証メッセージが表示されないはずです。この不要なメッセージの表示を停止するにはどうすればよいですか?。ページを送信すると、ViewContext.ViewData.ModelState.Values期待どおりに入力されます。どんなポインタでもありがたいです。

4

2 に答える 2

2

それは正しい機能です。検証メッセージにはclass="field-validation-valid"、重要なビットのクラスがあります。これはValidです。フォームを無効にすると、スパンが次のように変更されます。

<span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Destination.DestinationText">
<span class="" for="Destination_DestinationText" generated="true">The DestinationText field is required.</span>
</span>

に注意してclass="field-validation-error"ください。

于 2012-09-28T09:06:00.350 に答える
0

これらのデータ属性は、jQueryを使用してクライアント側の検証を実行するために使用されます。のようなMVC検証属性を追加すると、RequiredまたはRange(0,2)属性が自動的に追加されます。フィールドにある属性によってフィールドが無効になることはありません。無効な状態の場合、cssクラスfield-validation-validクラスが削除され、cssクラスfield-validation-errorが適用されます。データ属性が生成されないようにするために、明らかにノックオン効果があるJavaScriptを無効にすることができます。私はそのままにして、すべてがうまくいくことを知って安全です:)

于 2012-09-28T09:06:11.147 に答える