![](/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.