public override IEnumerable <ModelClientValidationRule> GetClientValidationRules() { string errorMessage = ErrorMessage; object father = ControllerContext.Controller.ViewData.Model; ViewContext vc = ControllerContext as ViewContext; if (vc != null) { father = vc.ViewData.Model; } string clientMaximum = null; string clientMinimum = null; object minDelay = null; object maxDelay = null; var rule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = Metadata.ModelType == typeof(DateTime) || Metadata.ModelType == typeof(DateTime?) ? "daterange" : "dynamicrange" }; object globalMin = Attribute.GetGlobalMinimum(father, this.ControllerContext.Controller.ViewData.Model, out clientMinimum, out minDelay); object globalMax = Attribute.GetGlobalMaximum(father, this.ControllerContext.Controller.ViewData.Model, out clientMaximum, out maxDelay); if (Metadata.ModelType == typeof(DateTime) || Metadata.ModelType == typeof(DateTime?)) { bool isClientBlock = vc.ViewData["ClientBindings"] != null || vc.HttpContext.Items.Contains("ClientTemplateOn"); if (!isClientBlock) { if (globalMin != null) { globalMin = BasicHtmlHelper.ClientValidationDate(globalMin, isClientBlock); } if (globalMax != null) { globalMax = BasicHtmlHelper.ClientValidationDate(globalMax, isClientBlock); } } } rule.ValidationParameters.Add("min", globalMin); rule.ValidationParameters.Add("max", globalMax); if (clientMaximum != null || clientMinimum != null) { var drule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = Metadata.ModelType == typeof(DateTime) || Metadata.ModelType == typeof(DateTime?) ? "clientdynamicdaterange" : "clientdynamirange" }; drule.ValidationParameters.Add("min", clientMinimum); drule.ValidationParameters.Add("max", clientMaximum); drule.ValidationParameters.Add("mindelay", minDelay); drule.ValidationParameters.Add("maxdelay", maxDelay); return(new[] { rule, drule }); } else { return(new[] { rule }); } }
public override IEnumerable <ModelClientValidationRule> GetClientValidationRules() { string errorMessage = ErrorMessage; object father = ControllerContext.Controller.ViewData.Model; ViewContext vc = ControllerContext as ViewContext; if (vc != null) { father = vc.ViewData.Model; } string clientMaximum = null; string clientMinimum = null; object minDelay = null; object maxDelay = null; object globalMin = Attribute.GetGlobalMinimum(father, this.ControllerContext.Controller.ViewData.Model, out clientMinimum, out minDelay); object globalMax = Attribute.GetGlobalMaximum(father, this.ControllerContext.Controller.ViewData.Model, out clientMaximum, out maxDelay); List <ModelClientValidationRule> res = new List <ModelClientValidationRule>(); if (globalMin != null || globalMax != null) { bool isClientBlock = vc.ViewData["ClientBindings"] != null || vc.HttpContext.Items.Contains("ClientTemplateOn"); if (!isClientBlock) { if (globalMin != null) { globalMin = BasicHtmlHelper.ClientValidationDate(globalMin, isClientBlock); } if (globalMax != null) { globalMax = BasicHtmlHelper.ClientValidationDate(globalMax, isClientBlock); } } var rule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = "daterange" }; rule.ValidationParameters.Add("min", globalMin); rule.ValidationParameters.Add("max", globalMax); res.Add(rule); } if (clientMaximum != null || clientMinimum != null) { var drule = new ModelClientValidationRule { ErrorMessage = errorMessage, ValidationType = "clientdynamicdaterange" }; drule.ValidationParameters.Add("min", clientMinimum); drule.ValidationParameters.Add("max", clientMaximum); drule.ValidationParameters.Add("mindelay", minDelay); drule.ValidationParameters.Add("maxdelay", maxDelay); res.Add(drule); } return(res.ToArray()); }