加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – FluentValidation可以做复选框吗?

发布时间:2020-12-16 09:23:16 所属栏目:asp.Net 来源:网络整理
导读:我正在使用FluentValidation来验证MVC表单上的输入. 我有一个复选框. 无论我将验证规则设置为什么,它都不会验证复选框. 我知道验证工作正常,因为我有一个在同一页面上验证正常的下拉列表. 视图 %: Html.CheckBoxFor(m = m.fullname_required) % 模型 [Valida
我正在使用FluentValidation来验证MVC表单上的输入.

我有一个复选框.

无论我将验证规则设置为什么,它都不会验证复选框.

我知道验证工作正常,因为我有一个在同一页面上验证正常的下拉列表.

视图

<%: Html.CheckBoxFor(m => m.fullname_required) %>

模型

[Validator(typeof(CreateFormModelValidator))]
public class CreateFormModel
{
    public int? group_id { get; set; }

    public IEnumerable<SelectListItem> Groups { get; set; }

    [DisplayName("Fullname is required")]
    public bool fullname_required { get; set; }
}
public class CreateFormModelValidator : AbstractValidator<CreateFormModel>
{
    public CreateFormModelValidator()
    {
        RuleFor(x => x.group_id).NotEmpty().NotNull().WithMessage("Please select a group!");
        RuleFor(x => x.fullname_required).NotNull();        
    }
}

我试过了

RuleFor(x => x.fullname_required).NotEmpty();
RuleFor(x => x.fullname_required).NotNull();
RuleFor(x => x.fullname_required).NotEqual(false);

这些都不起作用.我要去尝试做这项工作的香蕉.这是一个F *** ing复选框

PS:我发现线程正在谈论使用jQuery,但这是使用服务器端验证,而不是客户端.

解决方法

我从未在页面上放置ValidationMessageFor属性作为复选框.它验证很好,但我看不到它.

更新:
最终的目标是有一个复选框,只有在选中第二个复选框时才会对其进行验证.即

RuleFor(x => x.fullname_show).NotEmpty().When(x => x.fullname_required == true);

但是,在上面的facepalm之后,这仍然不起作用,但是由于lomaxx,我能够通过将fullname_required转换为bool来实现它吗?

RuleFor(x => x.fullname_show).NotEmpty().When(x => ((bool?)x.fullname_required) != false);

如果有人试图在MVC中使用FluentValidation有条件地验证复选框,那就是你如何做到的!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读