Ejemplo n.º 1
0
        /// <summary>
        /// 对model进行验证
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public override bool TryValidateModel(object model)
        {
            try
            {
                if (!this.ModelState.IsValid)
                {
                    return(this.ModelState.IsValid);
                }

                if (model == null)
                {
                    return(base.TryValidateModel(model));
                }

                var modelType = model.GetType();
                var validator = ValidatorProvider.GetValidator(modelType);
                if (validator == null)
                {
                    return(base.TryValidateModel(model));
                }

                var modelValidator = new ValidationModelValidator(validator);
                var array          = modelValidator.ValidateModel(model);
                if (array.IsNullOrEmpty())
                {
                    return(base.TryValidateModel(model));
                }

                if (array.Any())
                {
                    foreach (var a in array)
                    {
                        this.ModelState.AddModelError(a.MemberName, a.Message);
                    }

                    return(false);
                }

                return(base.TryValidateModel(model));
            }
            catch
            {
            }

            return(base.TryValidateModel(model));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 对model进行验证
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public new bool TryValidateModel(object model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.ModelState.IsValid);
            }

            if (model == null)
            {
                return(base.TryValidateModel(model));
            }

            var modelType = model.GetType();
            var validator = ValidatorProvider.GetValidator(modelType);

            if (validator == null)
            {
                return(base.TryValidateModel(model));
            }

            var metadata       = ModelMetadataProviders.Current.GetMetadataForType(() => model, modelType);
            var modelValidator = new ValidationModelValidator(metadata, this.ControllerContext, validator);
            var array          = modelValidator.ValidateModel(model);

            if (array.IsNullOrEmpty())
            {
                return(base.TryValidateModel(model));
            }

            if (array.Any())
            {
                foreach (var a in array)
                {
                    this.ModelState.AddModelError(a.MemberName, a.Message);
                }

                return(false);
            }

            return(base.TryValidateModel(model));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 对model进行验证
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool TryValidateModel(object model)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.ModelState.IsValid);
            }

            if (model == null)
            {
                this.ModelState.AddModelError("parameter", new ArgumentNullException());
                return(this.ModelState.IsValid);
            }

            var modelType = model.GetType();
            var validator = ValidatorProvider.GetValidator(modelType);

            if (validator == null)
            {
                return(this.ModelState.IsValid);
            }

            var modelValidator = new ValidationModelValidator(new System.Web.Http.Validation.ModelValidatorProvider[0], validator);
            var array          = modelValidator.ValidateModel(model);

            if (array.IsNullOrEmpty())
            {
                return(this.ModelState.IsValid);
            }

            if (array.Any())
            {
                foreach (var a in array)
                {
                    this.ModelState.AddModelError(a.MemberName, a.Message);
                }

                return(false);
            }

            return(this.ModelState.IsValid);
        }