데이터 주석을 사용하여 ASP.NET MVC에서 결합된 속성 길이의 사용자 지정 확인 구현
사용자 정의 유효성 검사 속성은 여러 속성을 동시에 유효성 검사할 때 유연성을 제공합니다. ASP.NET MVC에서는 ValidationAttribute
기본 클래스를 사용하여 사용자 지정 유효성 검사 속성을 만들고 [Validate]
특성을 사용하여 모델의 속성에 적용할 수 있습니다.
결합된 속성 길이에 대한 사용자 정의 유효성 검사 속성
여러 문자열 속성의 결합된 길이를 확인하려면 다음과 같은 사용자 정의 확인 속성을 생성할 수 있습니다.
<code class="language-csharp">public class CombinedMinLengthAttribute : ValidationAttribute { public CombinedMinLengthAttribute(int minLength, params string[] propertyNames) { this.PropertyNames = propertyNames; this.MinLength = minLength; } public string[] PropertyNames { get; private set; } public int MinLength { get; private set; } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var properties = this.PropertyNames.Select(validationContext.ObjectType.GetProperty); var values = properties.Select(p => p.GetValue(validationContext.ObjectInstance, null)).OfType<string>(); var totalLength = values.Sum(x => x.Length) + Convert.ToString(value).Length; if (totalLength < MinLength) { return new ValidationResult(ErrorMessageString); } return ValidationResult.Success; } }</code>
모델에 사용
이 유효성 검사를 모델에 적용하려면 해당 속성 중 하나를 [Validate]
속성으로 장식할 수 있습니다.
<code class="language-csharp">public class MyViewModel { [CombinedMinLength(20, "Bar", "Baz", ErrorMessage = "Foo, Bar和Baz属性的组合最小长度应大于20")] public string Foo { get; set; } public string Bar { get; set; } public string Baz { get; set; } }</code>
이 유효성 검사 속성은 Foo, Bar 및 Baz 속성의 결합된 길이가 지정된 최소 길이(이 예에서는 20)보다 크거나 같은지 확인합니다. 유효성 검사가 실패하면 ErrorMessage
매개 변수에 정의된 대로 유효성 검사 요약에 적절한 오류 메시지가 표시됩니다.
위 내용은 ASP.NET MVC에서 결합된 속성 길이에 대한 사용자 지정 유효성 검사를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!