Das ist mein Datenmodell ist, und es enthält eine benutzerdefinierte Validierung:asp .net Kern - benutzerdefinierte Validierungsfehler nicht sichtbar angezeigt
public class MyData : IValidatableObject
{
public int ID { get; set; }
public int number { get; set; }
[Required]
public string text { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (text.Length < number)
{
yield return new ValidationResult(
"Text too short, must be at least: " + number.ToString(),
new[] { "number" });
}
}
}
Dies ist ein Teil meiner Ansicht ist:
<div class="form-group">
<label asp-for="number" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="number" class="form-control" />
<span asp-validation-for="number" class="text-danger" />
</div>
</div>
Der benutzerdefinierte Validierungsfehlertext wird nie angezeigt, wo asp-validation-for sollte (wenn keine Felddaten vorhanden sind, wird die Standardnachricht Das Nummernfeld ist erforderlich.) Wird korrekt angezeigt.
Allerdings, wenn ich hinzufüge Dieses Codesegment in der Ansicht:
<div>
@Html.ValidationMessage("number")
</div>
... es wird die benutzerdefinierte Fehlermeldung angezeigt werden soll.
Was ist das Problem mit ASP-Validierung-für-Helfer?