c# - displayformatattribute 自定义格式化字符串

标签 c# asp.net-mvc formatting displayformat

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

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

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

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

干杯 菲尔

最佳答案

有点类似于: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 中执行此操作。

关于c# - displayformatattribute 自定义格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23778661/

相关文章:

python - 替换 % 后跟字符串中的数字

c# - string.format() 至少保留一位小数

c# - 在 C# 中测试两个接口(interface)实例之间的值相等性?

C#:是否可以在 SQL 数据库中存储十进制数组?

c# - 如何检查 cookie 容器中是否有任何 cookie 过期?

asp.net - 如何在运行时打开数据库连接?

matlab - 质因数分解算法的格式

c# - 从 Asp.Net MVC 中的 Html 内容生成 JPEG

c# - 在运行时将属性的属性从一个实例复制到另一个实例(不同类型)

javascript - 如何将点击事件绑定(bind)到表头内的 Div