簡體   English   中英

FluentValidation:如何使用“ false”作為有效輸入來使布爾值成為必填字段?

[英]FluentValidation: how to make bool as required field with 'false' as valid input?

public bool IsDefault { get; set; }

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

我有一條規則,即IsDefault布爾屬性不應為null。 問題是,當客戶端點擊api時,客戶端未傳遞該字段時, IsDefault將默認布爾值屬性設置為false,並且不給出諸如“此字段為必填字段”之類的錯誤。

如何使用“ true”或“ false”作為其唯一有效輸入來使此字段符合要求?

我嘗試過的一種解決方案是:

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

問題在於,當IsDefault為“ false”(這不是預期的用例)時,它將給出驗證錯誤。

你可以用bool? Nullable<bool> )類型,可以為null ,默認值為null

您可以使用此:

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

從c#角度看,這是沒有意義的,因為bool值始終為true或false,但是如果數據來自api,則值可以為''或null之類的其他值,而不必更改模型。

只需使用字段{false,true,null}聲明一個名為booleanType的枚舉即可。

使用新類型代替最初設置為null的c#bool類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM