현재 프로젝트 :중첩 된 위치 (x => x.Condition = value,() => {}); fluentvalidation
- ASP.NET 4.5.1
- MVC는 5
내가 둥지를 할 수있는 경우에 알 필요가 같은 When()
문 :
When(x => x.Cond1 == val1,
() => {
When(x => x.SubCond1 == SubVal1,
() => {
When(x => x.Final1 == finalVal1,
() => {
RuleFor(x => x.Field1)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
When(x => x.Final2 == finalVal2,
() => {
RuleFor(x => x.Field8)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
});
When(x => x.SubCond2 == SubVal2,
() => {
RuleFor(x => x.Field16)
.NotEmpty().WithMessage("Should not be empty");
// a few more here
});
});
때문에 마지막으로 내가 원하는 것은 30 개 이상의 양식 필드를 다음과 같이 장식하는 것입니다.
RuleFor(x => x.Field1)
.NotEmpty().WithMessage("Should not be empty")
.When(x => x.Cond1 == val)
.When(x => x.SubCond1 == SubVal1)
.When(x => x.Final1 == finalVal1);
그건 그냥지지 않습니다.
아무 것도 실제로 사용자가 편집 할 수있는 필드 (사용자가 선택할 수있는 값)가 아니기 때문에 검증 자체가 필요하지 않습니다. 나는 그것들을 알려진 값과 비교할 필요가 있습니다. 실제로 if/else 문을 사용하는 것이 더 적절합니다. 그렇지 않습니다.
모델은 크게 평평하며 가져온 모델을 나타내는 두 번째 수준 When()
만 있고 가져온 모델 내에서 특정 필드를 처리하는 다른 방법은 세 번째 수준입니다.
시도해 보셨습니까? –
예, 발사하지 않는 것 같습니다. –
설명 : 해고 된 것 같지 않습니다. 그래서 제가 질문했습니다. –