在 MVC 视图中设置数字格式

本文关键字:数字 格式 设置 MVC 视图 | 更新日期: 2023-09-27 18:32:44

我有一个模型,当它显示在我的视图中时,我想以特定的方式格式化。

[DisplayFormat(DataFormatString = "{### ##}")] 
 [Display(Name = "Postnr")] 
 public string CustomerZip;

在视图中:

@Html.DisplayFor(modelItem => item.CustomerZip) 

在数据库中,值存储为 #####,因此我在尝试此方法时收到错误:"输入字符串格式不正确"。我认为(或者更确切地说是希望)DataFormatString 会为我重新格式化字符串。

任何关于如何以最佳方式做到这一点的建议将不胜感激。

在 MVC 视图中设置数字格式

几件事:

  1. DataFormatString需要使用 {0:...} 索引器样式格式字符串,就像在 string.Format 中使用的那样。所以你需要做一些类似 [DisplayFormat(DataFormatString="{0:### ##}"] .如果大括号应该是文字的,那么你将使用[DisplayFormat(DataFormatString="{{{0:### ##}}}")] .然而。。。
  2. 字符串没有这样的格式字符#。这就是您用于数字类型的内容。如果您将值存储为整数,那么您很幸运;只需将CustomerZip类型更改为 int。
  3. 如果您不是将值存储为整数,而是存储为字符串(通常您不会使用邮政编码),那么您会遇到更多问题。就像我说的,你没有任何带有字符串的自定义格式选项。您需要将 CustomerZip 表示为某个可定义的自定义类型。
使用以下

格式:

"{0:### ##}"

请参阅 MSDN 页上的示例 http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.dataformatstring.aspx

像这样使用 Raw 函数:

@Html.原始(项目.Valor.ToString("##,###"))

它适用于任何类型的数据。