displayformatattribute自定义格式化字符串

时间:2014-05-21 09:04:46

标签: c# asp.net-mvc formatting displayformat

我希望能够在我的视图模型中标记属性,以便在我的MVC视图中显示时使用自定义格式进行格式化。

我假设我需要自己的displayformatattribute并设置displayformat,但我不知道如何设置这个displayformat或在哪里。如果我想将数字显示为货币很容易,只需将DataFormatString设置为" {0:C}"在属性的构造函数中。

但是,例如,如果我想屏蔽电子邮件地址(因此删除域名),我将如何使用displayformatattribute或datatypeattribute? 所以这是一个我想要转换的字符串字段。 我知道还有其他方法,例如自定义显示模板,但后来我会失去一些内置的htmlhelper功能。我只是想改变字符串的格式。并且最好使其像向需要屏蔽的字段添加属性一样简单

DataFormatString似乎无法使用自定义格式化程序?

欢呼声 菲尔

1 个答案:

答案 0 :(得分:0)

Somewhate类似于: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讨论(但没有回答)如何在javascript中执行此操作。