我希望能够将视图模型中的属性标记为在 MVC 视图中显示时使用自定义格式进行格式化。
我假设我需要自己的显示格式属性并设置显示格式,但我不确定如何设置此显示格式或在哪里设置。如果我想将数字显示为货币,很简单,只需在属性的构造函数中将 DataFormatString 设置为“{0:C}”即可。
但是,例如,如果我想屏蔽电子邮件地址(因此删除域名),我将如何使用显示格式属性或数据类型属性来做到这一点?
所以我要转换的是一个字符串字段。
我知道还有其他方法,例如自定义显示模板,但随后我会失去一些内置的 htmlhelper 功能。我只是想改变字符串的格式,没有别的。最好让它像向需要屏蔽的字段添加属性一样简单
DataFormatString 似乎无法采用自定义格式化程序?
干杯
菲尔
有点类似于:如何制作可配置的 DisplayFormat 属性 https://stackoverflow.com/questions/13576571/how-to-make-configurable-displayformat-attribute
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; }
请注意,日期有服务器与客户端文化设置,http://msdn.microsoft.com/en-us/library/bb882561(v=vs.110).aspx http://msdn.microsoft.com/en-us/library/bb882561(v=vs.110).aspx讨论(但没有回答)如何在 javascript 中执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)