默认设置为DisplayFormatAttribute.ConvertEmptyStringToNull跨网站虚假 [英] Set default for DisplayFormatAttribute.ConvertEmptyStringToNull to false across site
本文介绍了默认设置为DisplayFormatAttribute.ConvertEmptyStringToNull跨网站虚假的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
属性,DisplayFormatAttribute.ConvertEmptyStringToNull是true的默认值。我想它默认为false,整个站点(或类或页面将是一件好事)。有没有一种方法,我可以做到这一点,所以我不需要装点每个测试表单字段:
[DisplayFormat(ConvertEmptyStringToNull = FALSE)]
解决方案
您可以创建自己的自定义模型元数据提供者是这样的:
公共类CustomModelMetadataProvider:DataAnnotationsModelMetadataProvider
{
保护覆盖ModelMetadata CreateMetadata(IEnumerable的< System.Attribute>属性,System.Type的containerType,System.Func<对象> modelAccessor,System.Type的modelType,弦乐propertyName的)
{
VAR modelMetadata = base.CreateMetadata(属性,containerType,modelAccessor,modelType,propertyName的);
如果(string.IsNullOrEmpty(propertyName的))返回modelMetadata; 如果(modelType == typeof运算(字符串))
modelMetadata.ConvertEmptyStringToNull = FALSE; 返回modelMetadata;
}
}
然后在你的app_start注册吧:
ModelMetadataProviders.Current =新CustomModelMetadataProvider();
The attribute, DisplayFormatAttribute.ConvertEmptyStringToNull has a default of true. I would like to default it to false for the entire site (or by class or page would be good too). Is there a way I can do this so I don't need to decorate each test form field with:
[DisplayFormat(ConvertEmptyStringToNull=false)]
解决方案
You can create your own custom model metadata provider like this:
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;
}
}
Then register it in your app_start:
ModelMetadataProviders.Current = new CustomModelMetadataProvider();
这篇关于默认设置为DisplayFormatAttribute.ConvertEmptyStringToNull跨网站虚假的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文