Displayformatattribute用于自定义格式化字符串
本文关键字:字符串 格式化 自定义 用于 Displayformatattribute | 更新日期: 2023-09-27 18:04:28
我希望能够在视图模型中标记属性,以便在MVC视图中显示时使用自定义格式进行格式化。
我假设我需要自己的displayformatattribute并设置displayformat,但我不确定如何设置此displayformat或在哪里。如果我想将数字显示为货币,这很容易,只需在属性的构造函数中将DataFormatString设置为"{0:C}"。
但是,如果例如我想要屏蔽电子邮件地址(因此删除域名),我如何使用displayformatattribute或datatypeattribute来做到这一点?这是一个我想要转换的字符串字段。我知道还有其他方法,例如自定义显示模板,但那样我会失去一些内置的htmlhelper功能。我只想改变字符串的格式,别无其他。最好让它像在需要屏蔽的字段中添加一个属性那样简单
DataFormatString似乎不能采用自定义格式化器?
干杯菲尔。
类似于:如何配置DisplayFormat属性
public class CustomDisplayFormatAttribute : DisplayFormatAttribute {
public CustomDisplayFormatAttribute() {
//MSDN Custom Date Format string rules:http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
DataFormatString = "{0;dddd dd MMMM YYYY}";
}
}
然后你可以使用它和基本属性,如ApplyFormatInEditMode,如下:
[CustomDisplayFormatAttribute(ApplyFormatInEditMode = false)]
public DateTime? CreatedOn { get; set; }
注意日期有一个服务器vs客户端文化设置,http://msdn.microsoft.com/en-us/library/bb882561(v=vs.110).aspx讨论(但没有回答)如何在javascript中做到这一点。