asp .net核心 - 视图中未显示自定义验证错误

时间:2016-11-23 13:49:26

标签: validation asp.net-core html-helper

这是我的数据模型,它包含一个自定义验证:

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" });
        }
    }
}

这是我观点的一部分:

<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>

自定义验证错误文本永远不会显示在asp-validation-for shoud的位置(当字段数据不存在时,标准消息需要数字字段。“正确显示)。

但是,如果我在视图中添加此代码段:

<div>
    @Html.ValidationMessage("number")
</div>

...它将显示自定义错误消息。

asp-validation-for helper有什么问题?

1 个答案:

答案 0 :(得分:3)

我在你正在使用的代码中找到了它

<span asp-validation-for="number" class="text-danger" />

您需要添加结束标记。像

一样使用它
<span asp-validation-for="number" class="text-danger" ></span>

它会在字段下显示错误消息。

相关问题