小编Mar*_*ech的帖子

客户端列表的MVC自定义验证

我正在尝试编写一个在客户端工作的自定义验证器,验证所有复选框都已勾选.

这是模型上的声明:

[DeclarationsAccepted(ErrorMessage = "You must tick all declarations")]        
    public IList<DeclarationQuestion> DeclarationQuestions { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是属性:

public class DeclarationsAccepted : ValidationAttribute, IClientValidatable
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {

        var questions = value as IList<DeclarationQuestion>;

        if (questions != null && questions.All(c => c.Answer))
        {
            return ValidationResult.Success;
        }
        return new ValidationResult("You must accepted all declarations to continue");
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        var modelClientValidationRule = new ModelClientValidationRule
        {
            ValidationType = "declarationsaccepted",
            ErrorMessage = FormatErrorMessage(metadata.DisplayName)
        }; …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-4

2
推荐指数
1
解决办法
2402
查看次数

标签 统计

asp.net-mvc ×1

asp.net-mvc-4 ×1