asp .net core - 自定义验证错误未显示在视图中
Posted
技术标签:
【中文标题】asp .net core - 自定义验证错误未显示在视图中【英文标题】:asp .net core - custom validation errors not displayed on view 【发布时间】: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 有什么问题?
【问题讨论】:
【参考方案1】:我在你使用的代码中发现了它
<span asp-validation-for="number" class="text-danger" />
您需要添加结束标记。像使用它
<span asp-validation-for="number" class="text-danger" ></span>
它会在字段下方显示错误消息。
【讨论】:
以上是关于asp .net core - 自定义验证错误未显示在视图中的主要内容,如果未能解决你的问题,请参考以下文章
在 Asp.net Core MVC 中定义自定义客户端验证规则