Displayformatattribute用于自定义格式化字符串

本文关键字:字符串 格式化 自定义 用于 Displayformatattribute | 更新日期: 2023-09-27 18:04:28

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

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

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

DataFormatString似乎不能采用自定义格式化器?

干杯菲尔。

Displayformatattribute用于自定义格式化字符串

类似于:如何配置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中做到这一点。