属性DisplayFormatAttribute.ConvertEmptyStringToNull的默认值为true。我想将它默认为整个网站的假(或者通过类或页面也是好的)。有没有办法可以做到这一点,所以我不需要用:
来装饰每个测试表单字段[DisplayFormat(ConvertEmptyStringToNull=false)]
答案 0 :(得分:15)
您可以像这样创建自己的自定义模型元数据提供程序:
public class CustomModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<System.Attribute> attributes, System.Type containerType, System.Func<object> modelAccessor, System.Type modelType, string propertyName)
{
var modelMetadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
if (string.IsNullOrEmpty(propertyName)) return modelMetadata;
if (modelType == typeof(String))
modelMetadata.ConvertEmptyStringToNull = false;
return modelMetadata;
}
}
然后在app_start中注册:
ModelMetadataProviders.Current = new CustomModelMetadataProvider();