【问题标题】:asp .net core - custom validation errors not displayed on viewasp .net core - 自定义验证错误未显示在视图中
【发布时间】:2017-04-07 13:40:00
【问题描述】:

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

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 应该放置的位置(当字段数据不存在时,标准消息“数字字段是必需的。”正确显示)。

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我在你使用的代码中发现了它

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

    您需要添加结束标记。像使用它

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2016-07-23
      相关资源
      最近更新 更多