C# Telerik ASP.NET MVC复选框剑道验证

C# Telerik ASP.NET MVC复选框剑道验证,c#,jquery,asp.net-mvc,kendo-ui,telerik,C#,Jquery,Asp.net Mvc,Kendo Ui,Telerik,我的视图模型中有[Required]属性的布尔属性 我有 @(Html.Kendo().CheckBoxFor(m => m.AcceptTermsOfUseAndPrivacyPolicy) $("form").kendoValidator(); 在我看来 表单上的所有其他控件按预期进行验证,只有复选框验证不起作用(未执行验证) 我缺少什么?用于MVC零件(创建自定义属性、视图和模型验证) 对于JavaScript部分(自定义剑道验证器): 你在期待什么?您的属性只能有两个值中的一

我的视图模型中有[Required]属性的布尔属性

我有

@(Html.Kendo().CheckBoxFor(m => m.AcceptTermsOfUseAndPrivacyPolicy)

$("form").kendoValidator();
在我看来

表单上的所有其他控件按预期进行验证,只有复选框验证不起作用(未执行验证)

我缺少什么?

用于MVC零件(创建自定义属性、视图和模型验证)

对于JavaScript部分(自定义剑道验证器):


你在期待什么?您的属性只能有两个值中的一个-
true
false
,它将始终具有这些值(除非您有恶意用户试图发回其他值)。请注意,
[Required]
实际上不是必需的,因为该属性不可为空。嗯,是的,谢谢您为我指明了正确的方向。我需要自定义布尔验证属性,它将使模型在出现假值时处于错误状态。此外,我可能需要自定义剑道验证器。
(function($, kendo) {
    $.extend(true, kendo.ui.validator, {
        rules: {
            booleanrequired: function(input, params) {
                if ($(input).is(':checkbox')) {

                    var attr = $(input).attr('data-val-booleanrequired');
                    var req = $(input).attr('data-val-required');

                    if ((typeof req !== typeof undefined && req !== false) && (typeof attr !== typeof undefined && attr !== false)) {

                        return $(input).is(':checked');
                    }
                    return true;
                }
                return true;
            }
        },
        messages: {
            booleanrequired: function(input) {
                return input.attr("data-val-booleanrequired");
            }
        }
    });
})(jQuery, kendo);