public override IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { var errorMessage = FormatErrorMessage(metadata.GetDisplayName()); var cases = new List <RegularExpressionCase>(); foreach (var rule in Rules) { var expression = CreateExpression(metadata.ContainerType, rule.Condition); var visitor = new JavascriptExpressionVisitor(); var javascriptExpression = visitor.Translate(expression); cases.Add(new RegularExpressionCase(javascriptExpression, rule.RegularExpression)); } var clientRule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = ValidationType, ValidationParameters = { { "cases", JsonConvert.SerializeObject(cases) } } }; return(new[] { clientRule }); }
public IEnumerable <ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { string errorMessage = FormatErrorMessage(metadata.GetDisplayName()); Expression expression = CreateExpression(metadata.ContainerType, _condition); var visitor = new JavascriptExpressionVisitor(); string javascriptExpression = visitor.Translate(expression); var clientRule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = "requiredif", ValidationParameters = { { "expression", javascriptExpression } } }; return(new[] { clientRule }); }