1

我在十进制类型的数据库中有一个值为 12345678.1200 的值。我还将它绑定为视图上的小数。(所以下面代码中的 item.Value 是十进制的)

这些代码行:

@item.Value
@item.Value.ToString("##,#.##")
@Html.Label(item.Value.ToString())
@Html.DisplayName(item.Value.ToString())
@Html.Label(item.Value.ToString("##,#.##"))
@Html.DisplayName(item.Value.ToString("##,#.##"))

在视图中提供以下值:

12345678.1200   
12,346,678.12   
1200    
1200    
12  
12

你看我尝试格式化值,但它没有帮助。这里发生了什么,我可以让 Label() / DisplayName() 帮助器呈现正确的值吗?Label() 和 DisplayName() 也不接受十进制类型,所以我不得不使用 ToString()。

4

1 回答 1

2

[DisplayFormat]如果你想传递一些格式,你应该用助手装饰你的视图模型属性:

[DisplayFormat(DataFormatString = "{0:##,#.##}")]
public decimal MyViewModelProperty { get; set; }

现在,当您使用 Display(或更推荐的 DisplayFor)助手时,将使用指定的格式:

@Html.DisplayFor(x => x.MyViewModelProperty)

就 Html.Label 帮助器而言,您可以使用第二个参数来指定格式:

@Html.Label("MyViewModelProperty", MyViewModelProperty.ToString("##,#.##"))
于 2013-06-14T07:14:56.173 回答