2016-11-23 7 views
3

に表示されていない。これは、私のデータモデルであり、それは1つのカスタム検証が含まれていますASP .NETのコア - カスタム検証エラーが表示

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> 

カスタム検証エラーテキストは表示されません。フィールドデータがない場合は、数字フィールドが必要です。 "が正しく表示されます。

ビューのこのコードセグメント:

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

...カスタムエラーメッセージが表示されます。

asp-validation-helperの問題点は何ですか?

答えて

1

私はあなたが終了タグを追加する必要があり

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

を使用しているあなたのコードでそれを考え出しました。

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

のようにそれを使用し、それが右の欄の下にエラーメッセージが表示されます。

関連する問題