【问题标题】:displayformatattribute to custom format a stringdisplayformatattribute 自定义格式化字符串
【发布时间】:2014-07-09 19:52:59
【问题描述】:

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

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

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

DataFormatString 好像不能带自定义格式化程序?

干杯 菲尔

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2012-08-28
      • 1970-01-01
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多