这里的简单问题(我认为)。

我有一个带有底部复选框的表格,用户必须同意条款和条件。如果用户未选中该框,我希望在验证摘要中显示一条错误消息以及其他表单错误。

我将此添加到我的 View 模型:

[Required]
[Range(1, 1, ErrorMessage = "You must agree to the Terms and Conditions")]
public bool AgreeTerms { get; set; }

但这没有用。

有没有一种简单的方法可以使数据批注中的值正确?

最佳答案

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;
using System.Web.Mvc;

namespace Checked.Entitites
{
    public class BooleanRequiredAttribute : ValidationAttribute, IClientValidatable
    {
        public override bool IsValid(object value)
        {
            return value != null && (bool)value == true;
        }

        public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
        {
            //return new ModelClientValidationRule[] { new ModelClientValidationRule() { ValidationType = "booleanrequired", ErrorMessage = this.ErrorMessage } };
            yield return new ModelClientValidationRule()
            {
                ValidationType = "booleanrequired",
                ErrorMessage = this.ErrorMessageString
            };
        }
    }
}

10-04 23:01
查看更多