MVC3 client validation not working

前端 未结 3 1481
借酒劲吻你
借酒劲吻你 2021-01-05 11:39

I have a required annotation on my model:

[Required(ErrorMessage = \"Please choose an option\")]
public bool? AnyDebts { get; set; }

I have

3条回答
  •  旧巷少年郎
    2021-01-05 11:40

    Take a look on this code.

        [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, AllowMultiple = false)]
    public class RequiredIfAttribute : RequiredAttribute
    {
        public string PropertyName { get; set; }
        public Enums.BasicOperationType BasicOperationType { get; set; }
    
        public RequiredIfAttribute(string propertyName, Enums.BasicOperationType BasicOperationType)
        {
            this.PropertyName = propertyName;
            this.BasicOperationType = BasicOperationType;
        }
    
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            Type objectType = validationContext.ObjectType;
            PropertyInfo[] neededProperties = objectType.GetProperties().Where(propertyInfo => propertyInfo.Name == PropertyName).ToArray();
            if (Core.Helpers.EnumHelper.TryParse(Convert.ToInt16(neededProperties[0].GetValue(validationContext.ObjectInstance, null))) == BasicOperationType)
                return base.IsValid(value, validationContext);
    
            return base.IsValid(0, validationContext);
        }
    }
    

提交回复
热议问题