禁用asp.net mvc3中的maxlength验证

时间:2012-10-09 05:20:02

标签: html css asp.net-mvc-3

我的应用程序基于asp.net mvc3。我有一个文本框,需要一个金额,最大长度为7个字符(用户可输入的最大金额为1000000)。在文本框的模糊我格式化货币形式的金额。因此,如果用户输入1000000,它将被格式化为$ 1,00,00,00。因此格式化使输入长度为12.当我提交表单时,我在此控件上获得验证错误,告诉“它超过7个字符。”。

我尝试编写自定义验证属性MaxValueAttribute,它将用户可以输入的最大值限制为1000000.该属性的问题是它不会禁用用户输入(如我们在文本框中使用maxlength属性时)他输入了7个字符。

有没有办法可以跳过maxlength验证。

编辑1:这是MaximumValueAttribute

 public class MaximumValueAttribute : ValidationAttribute, IClientValidatable
 {
    private double MaximumValue { get; set; }

    public MaximumValueAttribute(double maxValue)
    {
        MaximumValue = maxValue;           
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {            
        if ((double)value <= MaximumValue)
            return null;

        return new ValidationResult(base.ErrorMessageString);
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        var rule = new ModelClientValidationRule
        {
            ErrorMessage = base.ErrorMessageString,
            ValidationType = "maximumamount",
        };

        rule.ValidationParameters["maximumvalue"] = MaximumValue;

        yield return rule;
    }
 }

0 个答案:

没有答案