ContosoUniversityプロジェクトを使用してFluentValidationを試しています。
そこで、既存のクラスにバリデーター属性を追加しました。
[Validator(typeof(PersonValidator))]
public abstract class Person
{
public int ID { get; set; }
[Required]
[StringLength(50)]
[Display(Name = "Last Name")]
public string LastName { get; set; }
}
私PersonValidator
はまだ何もしていません:
public class PersonValidator : AbstractValidator<Person>
{
public PersonValidator()
{
}
}
しかし、Studentの作成ページにアクセスすると、デバッガーがそのEditorFor
行で停止します。
@Html.EditorFor(model => model.LastName,
new { htmlAttributes = new { @class = "form-control" } })
…。そしてエラーが発生します:
控えめなクライアント検証ルールの検証タイプ名は一意である必要があります。次の検証タイプが複数回見られました:必須
同じ要素に対して同じ検証を2回以上行っていないようですが、なぜエラーが発生するのですか?Fluent ValidationはMVCの組み込み検証と一緒に機能できますか?
文字列フィールドに暗黙の必須バリデーターを追加する理由はわかりませんが、Global.asax.cs
ファイルに暗黙の必須バリデーターを追加しないようにFluent Validation Providerを構成すると、問題は解決しました。
FluentValidationModelValidatorProvider.Configure(provider
=> provider.AddImplicitRequiredValidator = false);
既存のデータ注釈の動作を変更したくなかったので、追加したのはそれだけです
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加