데이터 주석을 사용하는 하나의 속성에 대한 유효성 검사를 무시할 수 있는지 알고 싶습니다. 여러 페이지에 걸쳐 모델을 사용하기 때문에 일부 모델에는 필요하지만 다른 모델에는 필요하지 않은 모델이 있으므로이를 무시하고 싶습니다.ASP.NET MVC 2에서 바이너리 데이터 주석 유효성 검사
탁 치!
데이터 주석을 사용하는 하나의 속성에 대한 유효성 검사를 무시할 수 있는지 알고 싶습니다. 여러 페이지에 걸쳐 모델을 사용하기 때문에 일부 모델에는 필요하지만 다른 모델에는 필요하지 않은 모델이 있으므로이를 무시하고 싶습니다.ASP.NET MVC 2에서 바이너리 데이터 주석 유효성 검사
탁 치!
당신은 외부 검증 클래스로 사용 FluentValidation을 사용할 수 있습니다. 이 경우 각 시나리오에 대해 다른 유효성 검사기 클래스를 구현합니다.
http://fluentvalidation.codeplex.com/
예 : - 짧은 대답이 '아니오'
using FluentValidation;
public class CustomerValidator: AbstractValidator<Customer> {
public CustomerValidator() {
RuleFor(customer => customer.Surname).NotEmpty();
RuleFor(customer => customer.Forename).NotEmpty()
.WithMessage("Please specify a first name");
}
}
public class CustomerValidator2: AbstractValidator<Customer> {
public CustomerValidator() {
RuleFor(customer => customer.Surname).NotEmpty();
}
}
Customer customer = new Customer();
CustomerValidator validator = new CustomerValidator();
ValidationResult results = validator.Validate(customer);
CustomerValidator2 validator2 = new CustomerValidator2();
ValidationResult results2 = validator2.Validate(customer);
results would have 2 validation errors
results2 would have 1 validation error for the same customer
데이터 주석으로는 가능하지 않습니다. Microsoft Enterprise Library 유효성 검사 응용 프로그램 블록은 규칙 세트의 유효성을 그룹화하는 개념을 가지고 있습니다. 이렇게하면 여러 규칙 세트 (예 : 기본 룰 세트 및 일부 페이지의 확장 룰 세트)에서 오브젝트의 유효성을 검증 할 수 있습니다. 데이터 주석에는 규칙 세트와 같은 것이 없습니다.
여기 VAB를 사용하는 예입니다
public class Subscriber
{
[NotNullValidator]
[StringLengthValidator(1,200)]
public string Name { get; set; }
[NotNullValidator(Ruleset="Persistence")]
[EmailAddressValidator]
public string EmailAddress { get; set; }
}
나는이에 잠시 다시 비슷한 일을 물었다. http://stackoverflow.com/questions/2503735/conditional-required-attribute-for-validation 필자는 자체 검증 시스템을 작성해야만했습니다. 당신은 그것을 처리 할 수있는 자신의 모델 바인더를 작성할 수 있을지 모르지만, 나는 그것에 대해 전혀 모른다. – jeriley
... 그래서 각보기에 대해 별도의보기 모델을 만들어야한다고 말합니다. – Necros