【问题标题】:Data annotations - DisplayFormat - formatting string of numbers数据注释 - DisplayFormat - 格式化数字字符串
【发布时间】:2025-12-05 01:50:02
【问题描述】:

我有以下字符串:"10222002750400447092095835"

我希望它像这样显示:10 2220 0275 0400 4470 9209 5835

我尝试了以下操作,但完全没有结果:

[DisplayFormat(DataFormatString = "{0:00 0000 0000 0000 0000 0000 0000}", ApplyFormatInEditMode = true)]

[DisplayFormat(DataFormatString = "{0:## #### #### #### #### #### ####}", ApplyFormatInEditMode = true)]

我做错了什么?

【问题讨论】:

  • 能否请您说明您在哪里使用该物业以及如何使用?
  • 为了简单起见,这里:String.Format("{0:## #### #### #### #### #### ####}", "10222002750400447092095835");。问题出在参数上——它是一个字符串,而字符串不是 IFormattable。但我怎么能省略呢?这个参数需要是一个字符串。
  • 你说过了——你需要自己实现IFormattable才能使用自定义格式。另见*.com/a/10512433/63733

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework data-annotations


【解决方案1】:

我相信您正在寻找的是字符串掩码。见下文。

* - How to mask a string * - Apply mask to string

【讨论】:

  • 谢谢。我不能完全使用掩码,但我创建了一个执行类似操作的自定义属性。 :)