It may be too late, but I found a solution.
var metaInfo = ViewData.ModelMetadata.Properties.First(data => data.PropertyName == "[Property name]");
Dictionary<string, object> attributes = new Dictionary<string, object>();
var validators = metaInfo.GetValidators(ViewContext.Controller.ControllerContext);
if(validators.Count() > 0)
{
attributes.Add("data-val", "true");
foreach (var validator in validators)
{
foreach(var rule in validator.GetClientValidationRules())
{
attributes.Add(string.Format("data-val-{0}", rule.ValidationType), rule.ErrorMessage);
foreach(var param in rule.ValidationParameters)
{
attributes.Add(string.Format("data-val-{0}-{1}", rule.ValidationType, param.Key), param.Value);
}
}
}
}
source
share