@ Html.ValidationMessage()ヘルパーを使用しようとしています。
modelNameのみを指定すると、エラーが発生した場合にのみ表示されます。
明示的なvalidationMessageを指定すると、(フィールドが有効な場合でも)何があっても表示されます。
@Html.ValidationMessage("elem_" + i, "This will show up no matter what!")
これは説明に反します。
System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper関数から(私はそれをILSpiedしました):
if (!string.IsNullOrEmpty(validationMessage))
{
tagBuilder.SetInnerText(validationMessage);
}
else
{
if (modelError != null)
{
tagBuilder.SetInnerText(ValidationExtensions.GetUserErrorMessageOrDefault(htmlHelper.ViewContext.HttpContext, modelError, modelState));
}
}
ご覧のとおり、validationMessageを指定すると表示されます。
これはバグですか、それとも意図されたものですか。そして、どうすればこれを回避できますか?