![](/img/trans.png)
[英]How to use unobtrusive validation to make an input field required field if another input field is empty?
[英]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.