MVC视图中的格式编号

时间:2012-05-01 08:15:48

标签: c# asp.net-mvc

我有一个带有数字I的模型,当我在视图中显示时,我希望以特定的方式进行格式化。

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

在视图中:

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

在DB中,值存储为#####,因此在尝试此方法时出现错误:"输入字符串格式不正确"。我想(或者更确切地说)DataFormatString会为我重新格式化字符串。

对于如何以最佳方式执行此操作的任何建议表示赞赏。

3 个答案:

答案 0 :(得分:3)

一些事情:

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

答案 1 :(得分:1)

答案 2 :(得分:1)

像这样使用Raw函数:

@ Html.Raw(item.Valor.ToString(“ ##,###”))

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