おかげで、span
がハードコーディングされています。 ValidationMessageFor
の代わりにdiv
を使用する方法はありません。
あなたは組み込みのヘルパーがそれをどうするかのようなメッセージが取得できます。
if (modelError != null) {
builder.SetInnerText(GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState));
}
private static string GetUserErrorMessageOrDefault(HttpContextBase httpContext, ModelError error, ModelState modelState) {
if (!String.IsNullOrEmpty(error.ErrorMessage)) {
return error.ErrorMessage;
}
if (modelState == null) {
return null;
}
string attemptedValue = (modelState.Value != null) ? modelState.Value.AttemptedValue : null;
return String.Format(CultureInfo.CurrentCulture, GetInvalidPropertyValueResource(httpContext), attemptedValue);
}
を私は上記のコードを試していないが、サーバー側の検証のようです。私は、完全に異なる実装を持つjqueryの邪魔にならない検証ライブラリでクライアント側の検証を行っています。 – MVCQuestioner
いいえ、それはいくつかの異なるカウントでは正しくありません。サーバーとクライアントの検証は「全く異なる実装」ではありません。両方とも 'ValidationMessageFor'から出てきます。お気軽にソースコードを参照してください。たとえば、jQueryバリデーターなどでデフォルトの検証メッセージを変更できますが、それはあなたの質問の一部でもある 'span' - ' 'div'を実行しません。 –
右。私が本当に疑問に思っていたのは、クライアント側の検証を行うときに、これがspanからdivに変わるかどうかということでした。私の推測では、上記のコードがValidationMessageForのjavascriptテンプレートをサーバー側とクライアント側の両方で自動的に生成しない限り、javascriptでクライアント側の完全な別の実装が必要である可能性があります。それを一箇所で行うのは不完全です。だから、このコードもおそらく起こるはずです。 – MVCQuestioner