您可以使用自己的自定义显示助手(类似于LabelFor
),或者
如果您希望 LabelFor 为:
<PropertyName> :
当你有一个必需的属性时
<PropertyName> : *
您可以尝试使用自定义 DataAnnotationsModelMetadataProvider
public class CustomModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType, Func<object> modelAccessor, Type modelType, string propertyName)
{
var metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
if (propertyName != null) {
metadata.DisplayName = (metadata.DisplayName ?? propertyName) + " : ";
if (attributes.OfType<RequiredAttribute>().Any())
metadata.DisplayName +=" * ";
}
return metadata;
}
}
要使用这个,你必须把
ModelMetadataProviders.Current = new CustomModelMetadataProvider()
在 Application_Start()
你的Global.asax.cs
现在,我不确定是否metadata.DisplayName
在错误消息中使用...我让你测试!