在ASP.NET Core中,可以使用以下代码获取不冗余验证属性:
var metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
var validator = htmlHelper.ViewContext.HttpContext.RequestServices.GetRequiredService();
var validationAttributes = validator.GetValidationAttributes(metadata, expression.Metadata.PropertyName);
其中,expression
是具有验证特性的模型的表达式,htmlHelper
是当前视图的HTML助手。
使用IValidator
服务获取验证器,然后使用GetValidationAttributes
方法从模型元数据和表达式的元数据属性名称中获取验证属性。
此方法返回一个IDictionary
,其中键是HTML属性名称,值是属性值。
例如,如果要将此属性添加到输入元素的HTML中:
那么可以将其替换为以下代码: