如何从ValidationAttribute类的IsValid函数访问ModelState.AddModelError()

时间:2016-03-29 08:20:22

标签: asp.net-mvc modelstate

我尝试在ModelState.AddModelError(string key, string errorMessage);类的IsValid函数中添加此行ValidationAttribute,但失败了。

[AttributeUsage(AttributeTargets.Property, AllowMultiple = true, Inherited = true)]
    public class AtleastOneAttribute : ValidationAttribute, IClientValidatable
    {
        // For Server side
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            if (value != null)
            {
                var oHobby=value as IEnumerable;

                foreach (var _object in oHobby)
                {
                    Hobby _oHobby = (Hobby)_object;
                    if (_oHobby.IsSelected)
                    {
                        return ValidationResult.Success;
                    }
                }

            }
             ModelState.AddModelError("Hobbies", "Err message....");

            return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
        }

告诉我如何从ValidationAttribute类的ModelState.AddModelError函数访问IsValid

感谢

1 个答案:

答案 0 :(得分:0)

ModelState函数无法访问

IsValidIsValid方法通过它的return语句向ModelState添加错误,因此如果您需要添加错误,只需将其返回:

return new ValidationResult("Err message....");