2016-08-03 4 views
0

공개 부울 IsDefault {get; 세트; }FluentValidation : 'false'를 유효한 입력으로 사용하여 bool을 필수 필드로 만드는 방법은 무엇입니까?

RuleFor (stockImage => stockImage.IsDefault) .NotNull();

"IsDefault"부울 속성이 null이 아니어야한다는 규칙이 있습니다. 문제는 클라이언트가 api를 치는 동안이 필드를 통과하지 않을 때 "IsDefault"가 false로 기본 부울 속성을 가져오고 "이 필드가 필요합니다"와 같은 오류를주지 않을 때입니다.

"true"또는 "false"를 유효한 입력으로 사용하여이 필드를 필요한대로 만들 수 있습니까? 제가

시도

한 용액을 제조 하였다 :

RuleFor (stockImage => stockImage.IsDefault) .NotEmpty();

이 문제는 "IsDefault"가 "false"이며 유스 케이스가 아닌 경우 유효성 검사 오류를 발생시키는 것입니다.

답변

4

당신은 bool? (Nullable<bool>가) null 할 수있는 입력 사용할 수 있으며, 기본값은 null 될 것입니다. 부울 값은 항상 참 또는 거짓 일 수 있기 때문에, 이해가되지 않는 C#을 관점에서

RuleFor(stockImage => stockImage.IsDefault).Must(x => x == false || x == true) 

하지만 데이터는 API에서 오는 경우, 값이 같은 다른 아무것도 될 수 있습니다

-1

그냥 필드 {거짓, 진실, 널 (null)}

처음에 null로 설정 새로운 유형 대신 C#의 부울 유형을 사용하여 booleanType라는 열거 형을 선언합니다.

+0

https://thedailywtf.com/articles/What_Is_Truth_0x3f_ – OffHeGoes

0

이 사용할 수 ''또는 null이고 모델을 변경할 필요가 없습니다.