本文介绍了dataannotation到整数属性的最大长度。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

朋友们,



假设我有一个整数类型,我在mvc中使用dataannotation进行验证。





// [MaxLengthSize(10)]像这样我想创建自定义。

Public Int Value {get;设置;}



我有一个文本框,当大于10个值时。 11111111111然后它返回错误



价值'11111111111'无效。



这是什么默认一个。原因是Int属性的最大值超过了,它使用了默认的错误信息。

我也创建了一个自定义验证器但是没有工作。



我需要创建才能正确显示我的验证。



我可以使用jquery验证,工作,但我只需要处理服务器端数据注释。



请帮我解决问题。

hi friends,

Suppose I have a propery of integer type and I am using dataannotation in mvc for validation.


//[MaxLengthSize(10)] Like this I want to create as custom.
Public Int Value {get; set;}

I have a text box when takes greater than 10 values Ex. "11111111111" then It return error

The value '11111111111' is invalid.

Which is the default one. The reason is Int property max value is exceed so, It used default error message.
I have also created a custom validator but not working.

I need to create for showing my validation proper.

I can use jquery validations,working, but I need to do with server side dataannotation only.

kindly help me with solution.

推荐答案

[Range(1,1000000000,ErrorMessage="Value must be between 1 to 1000000000")]



public sealed class FieldLengthAttribute : ValidationAttribute
    {
        private int _minValue { get; set; }
        private int _maxValue { get; set; }
        public FieldLengthAttribute(int minValue,int maxValue) {

            _minValue = minValue;
            _maxValue = maxValue;

            ErrorMessage = "{0} length should be between {1} and {2}";
        }

        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            
            if (value != null)
            {
                int objectLength = Convert.ToString(value).Length;
                if (objectLength < _minValue || objectLength > _maxValue)
                {
                    return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
                }
            }
            return ValidationResult.Success;
        }

        public override string FormatErrorMessage(string name)
        {
            return String.Format(CultureInfo.CurrentCulture,
              ErrorMessageString, name,_minValue,_maxValue);
        }

    }


这篇关于dataannotation到整数属性的最大长度。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-13 13:55