Exemple #1
0
        /// <summary>
        /// 获取属性的ValidBox
        /// </summary>
        /// <param name="property">属性</param>
        /// <param name="message">初始化提示消息</param>
        /// <returns></returns>
        private static ValidBox GetPropertyValidBox(PropertyInfo property, string message)
        {
            var validBox = ValidBox.Empty(message);

            // 值类型非空检测
            if (property.PropertyType.IsValueType && Attribute.IsDefined(property, typeof(RequiredAttribute)) == false)
            {
                validBox = ValidBox.Request(null);
            }

            var boxs = Attribute.GetCustomAttributes(property, false)
                       .Where(item => item is IValidRule)
                       .Cast <IValidRule>()
                       .OrderBy(item => item.OrderIndex)
                       .Select(item => item.ToValidBox());

            foreach (var box in boxs)
            {
                validBox = ValidBox.Merge(validBox, box);
            }

            // 数字类型输入检测
            if (property.PropertyType.IsNumberType() == true)
            {
                validBox = ValidBox.Merge(validBox, ValidBox.New("number", null));
            }
            return(validBox);
        }
        /// <summary>
        /// 验证输入是否是Email
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Email(this ValidBox box, string errorMessage)
        {
            var newBox = new EmailRule {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #3
0
        /// <summary>
        /// 验证输入是URL
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Url(this ValidBox box, string errorMessage)
        {
            var newBox = new UrlAttribute {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
        /// <summary>
        /// 验证输入的值的范围
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="minValue">最小值</param>
        /// <param name="maxValue">最大值</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Range(this ValidBox box, int minValue, int maxValue, string errorMessage)
        {
            var newBox = new RangeRule(minValue, maxValue)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #5
0
        /// <summary>
        /// 验证输入的长度
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="minLength">最小长度</param>
        /// <param name="maxLength">最大长度</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Length(this ValidBox box, int minLength, int maxLength, string errorMessage)
        {
            var newBox = new LengthAttribute(minLength, maxLength)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #6
0
        /// <summary>
        /// 验证输入的值的范围
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="minValue">最小值</param>
        /// <param name="maxValue">最大值</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Range(this ValidBox box, double minValue, double maxValue, string errorMessage)
        {
            var newBox = new RangeAttribute(minValue, maxValue)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
        /// <summary>
        /// 验证精度(小数点数)
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="min">最小精度</param>
        /// <param name="max">最大精度</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox Precision(this ValidBox box, int min, int max, string errorMessage)
        {
            var newBox = new PrecisionRule(min, max)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
        /// <summary>
        /// 验证输入是否和目标ID元素的值不相等
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="targetID">目标元素ID</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox NotEqualTo(this ValidBox box, string targetID, string errorMessage)
        {
            var newBox = new NotEqualToRule(targetID)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
        /// <summary>
        /// 验证输入和正则表达式不匹配
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="regexPattern">表达式</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox NotMatch(this ValidBox box, string regexPattern, string errorMessage)
        {
            var newBox = new NotMatchRule(regexPattern)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #10
0
        /// <summary>
        /// 验证输入的最大长度
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="length">最大长度</param>
        /// <param name="errorMessage">提示信息</param>
        /// <returns></returns>
        public static ValidBox MaxLength(this ValidBox box, int length, string errorMessage)
        {
            var newBox = new MaxLengthRule(length)
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #11
0
        /// <summary>
        /// 验证输入是否为数字类型
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="errorMessage">错误提示消息</param>
        /// <returns></returns>
        public static ValidBox Number(this ValidBox box, string errorMessage)
        {
            var newBox = new NumberRule()
            {
                ErrorMessage = errorMessage
            }.ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #12
0
        /// <summary>
        /// 远程验证输入值
        /// 不支持后台验证功能
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="url">远程地址</param>
        /// <param name="targetID">提交的目标元素的ID</param>
        /// <returns></returns>
        public static ValidBox Remote(this ValidBox box, string url, params string[] targetID)
        {
            var newBox = new RemoteRule(url, targetID).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #13
0
        /// <summary>
        /// 验证输入是否和目标ID元素的值不相等
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="targetID">目标元素ID</param>
        /// <returns></returns>
        public static ValidBox NotEqualTo(this ValidBox box, string targetID)
        {
            var newBox = new NotEqualToRule(targetID).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #14
0
        /// <summary>
        /// 验证输入和正则表达式不匹配
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="regexPattern">表达式</param>
        /// <returns></returns>
        public static ValidBox NotMatch(this ValidBox box, string regexPattern)
        {
            var newBox = new NotMatchRule(regexPattern).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #15
0
 /// <summary>
 /// 生成验证框对象
 /// </summary>
 /// <returns></returns>
 public override ValidBox ToValidBox()
 {
     return(ValidBox.Request(this, this.ErrorMessage));
 }
Exemple #16
0
        /// <summary>
        /// 验证输入是否是Email
        /// </summary>
        /// <param name="box">验证框</param>
        /// <returns></returns>
        public static ValidBox Email(this ValidBox box)
        {
            var newBox = new EmailRule().ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
 /// <summary>
 /// 生成验证框对象
 /// </summary>
 /// <returns></returns>
 public ValidBox ToValidBox()
 {
     return(ValidBox.New("length", this.ErrorMessage, this.MinimumLength, this.MaximumLength));
 }
Exemple #18
0
        /// <summary>
        /// 验证输入的值的范围
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="minValue">最小值</param>
        /// <param name="maxValue">最大值</param>
        /// <returns></returns>
        public static ValidBox Range(this ValidBox box, int minValue, int maxValue)
        {
            var newBox = new RangeRule(minValue, maxValue).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #19
0
        /// <summary>
        /// 验证必须输入
        /// </summary>
        /// <param name="box">验证框</param>
        /// <returns></returns>
        public static ValidBox Required(this ValidBox box)
        {
            var newBox = new RequiredRule().ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #20
0
        /// <summary>
        /// 验证输入的最大长度
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="length">最大长度</param>
        /// <returns></returns>
        public static ValidBox MaxLength(this ValidBox box, int length)
        {
            var newBox = new MaxLengthRule(length).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #21
0
        /// <summary>
        /// 验证输入的长度
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="minLength">最小长度</param>
        /// <param name="maxLength">最大长度</param>
        /// <returns></returns>
        public static ValidBox Length(this ValidBox box, int minLength, int maxLength)
        {
            var newBox = new LengthRule(minLength, maxLength).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #22
0
        /// <summary>
        /// 验证输入是否为数字类型
        /// </summary>
        /// <param name="box">验证框</param>
        /// <returns></returns>
        public static ValidBox Number(this ValidBox box)
        {
            var newBox = new NumberRule().ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }
Exemple #23
0
 /// <summary>
 /// 生成验证框对象
 /// </summary>
 /// <returns></returns>
 public ValidBox ToValidBox()
 {
     return(ValidBox.Request(this.ErrorMessage));
 }
Exemple #24
0
 /// <summary>
 /// 生成前端验证规则
 /// </summary>
 /// <param name="html">html助手</param>
 /// <returns></returns>
 public static ValidBox Valid(this HtmlHelper html)
 {
     return(ValidBox.Empty());
 }
 /// <summary>
 /// 生成控件的前面验证规则
 /// </summary>
 /// <param name="ctrl">控件</param>
 /// <returns></returns>
 public static ValidBox Valid(this DropDownList ctrl)
 {
     return(ValidBox.Empty(ctrl));
 }
Exemple #26
0
        /// <summary>
        /// 生成前端验证规则
        /// </summary>
        /// <param name="html">html助手</param>
        /// <param name="field">绑定的ModelState字段名</param>
        /// <returns></returns>
        public static ValidBox Valid(this HtmlHelper html, string field)
        {
            var message = html.ViewData.ModelState.GetErrorMessage(field);

            return(ValidBox.Empty(message));
        }
Exemple #27
0
 /// <summary>
 /// 生成验证框对象
 /// </summary>
 /// <returns></returns>
 public override ValidBox ToValidBox()
 {
     return(ValidBox.New(this, this.ValidType, this.ErrorMessage, this.Length));
 }
Exemple #28
0
 /// <summary>
 /// 转换为对应的ValidBox类型
 /// </summary>
 /// <returns></returns>
 public override ValidBox ToValidBox()
 {
     return(ValidBox.New(this.ValidType, this.ErrorMessage, this.RegexPattern));
 }
 /// <summary>
 /// 转换为对应的ValidBox类型
 /// </summary>
 /// <returns></returns>
 public override ValidBox ToValidBox()
 {
     return(ValidBox.New(this.ValidType, this.ErrorMessage, this.TargetId));
 }
Exemple #30
0
        /// <summary>
        /// 验证精度(小数点数)
        /// </summary>
        /// <param name="box">验证框</param>
        /// <param name="min">最小精度</param>
        /// <param name="max">最大精度</param>
        /// <returns></returns>
        public static ValidBox Precision(this ValidBox box, int min, int max)
        {
            var newBox = new PrecisionRule(min, max).ToValidBox();

            return(ValidBox.Merge(box, newBox));
        }