【问题标题】:Validate Bool using Fluent Validator使用 Fluent Validator 验证 Bool
【发布时间】:2019-04-12 22:57:29
【问题描述】:

我想使用流利的验证器来验证布尔属性。 我应该使用哪种方法?

.NotNull() 和 .NotEmpty() 函数不起作用。

谢谢。

【问题讨论】:

  • 你用布尔值验证什么?它不能变坏,不能为空(除非可以为空并且你仍然使用NotNull()?
  • 我有一个组合框,想验证是否选择了任何项目。但是,如果没有选择任何内容,则为 false :(
  • 你说你试过 Equal() 但你确定不是 Equals() 吗?我遇到了同样的问题,Equals() 不起作用,但 Equal() 起作用了。

标签: nhibernate fluent-nhibernate fluentvalidation


【解决方案1】:

你应该使用.NotNull()

NotEmpty() 将仅将 true 作为有效属性。 NotNull()truefalse 作为有效属性。

【讨论】:

  • NotNull 似乎适用于我的本地主机上的错误输入,但意外返回“已启用”在 Azure 上不得为空
【解决方案2】:

为了使用流利的验证器验证布尔值:

创建以下规则

            RuleFor(x => x.BooleanProperty)
            .Must(ValidateBoolean)
            .WithErrorCode("Boolean Validation Failed");

定义谓词验证器

        private bool ValidateBoolean(T arg1, bool arg2, PropertyValidatorContext arg3)
    {
        // validate arg2, return true if validation successful or false if failed
        throw new System.NotImplementedException();
    }

【讨论】:

    【解决方案3】:

    请查看this question。它已成功回答,我想这就是您要寻找的。​​p>

    他们在其中创建流利的验证器来检查是否选择了@Html.CheckBox。如果我理解你的问题,这正是你要找的。​​p>

    如果有帮助,请告诉我。 - 谢谢

    【讨论】:

    • 请问有什么帮助吗?
    【解决方案4】:

    尝试使用.Equal(true) - 那样不行。

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 2012-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2014-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多