我希望能够以纪念我的ViewModel属性,以使用自定义格式,在我的MVC视图中显示时被格式化。
我想我需要我自己displayformatattribute并设置displayformat,但我不知道该如何设置displayformat或地方。 如果我要显示一个数字作为货币很容易,只需设置DataFormatString为“{0:C}”中的属性的构造函数。
但是,如果比如我要屏蔽的电子邮件地址(以便删除域名),我会怎么做这使用一个displayformatattribute或者一个datatypeattribute? 所以这是我想改变一个字符串字段。 我知道有其他的方法,例如自定义显示模板,但然后我会失去一些内置的HtmlHelper功能。 我只是想改变字符串没有其他的格式。 并且优选地使之一样简单添加属性给那些需要掩蔽字段
该DataFormatString似乎并没有能够采取自定义格式?
菲尔欢呼
Somewhate类似于: 如何使配置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。