如何在ASP.NET MVC的客户端激活自定义验证器

时间:2011-11-21 07:28:46

标签: c# asp.net asp.net-mvc asp.net-mvc-3

这是我的自定义验证器类:

public class PriceAttribute : ValidationAttribute {

    public double MinPrice { get; set; }

    public override bool IsValid(object value) {
        if (value == null) {
            return true;
        }
        var price = (double)value;
        if (price < MinPrice) {
            return false;
        }
        double cents = price - Math.Truncate(price);
        if (cents < 0.99 || cents >= 0.995) {
            return false;
        }

        return true;
    }
}

我的模特:

public class MyModel {

    public long Id { get; set; }

    [Price(MinPrice = 1.2, ErrorMessage = "hmm not good value")]
    public double Price { get; set; }
}

但是这个验证器会在回发时触发。如何实现它以像[Required]验证器一样触发客户端。是否有任何jQuery引用要添加到视图页面?或者我需要一个自定义脚本来处理它?<​​/ p>

2 个答案:

答案 0 :(得分:1)

This article详细介绍了为了获得客户端验证而必须执行的步骤。

  

但是此验证器会使用回发

请注意,没有回发,只有MVC中的普通HTTP POST。

答案 1 :(得分:0)

您最好使用jQuery验证引擎。