gpt4 book ai didi

asp.net-mvc-4 - 为什么 DisplayName() 和 Label() Html 助手会丢失十进制值的左侧部分?

转载 作者:行者123 更新时间:2023-12-05 05:27:49 25 4
gpt4 key购买 nike

我在数据库中有一个十进制类型的值 12345678.1200。我还在 View 中将其绑定(bind)为十进制。 (所以下面代码中的 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("##,#.##"))

在 View 中呈现以下值:

12345678.1200   
12,346,678.12
1200
1200
12
12

你看,我尝试格式化该值,但没有帮助。这是怎么回事,我可以让 Label()/DisplayName() 助手呈现正确的值吗? Label() 和 DisplayName() 也不接受小数类型,所以我不得不使用 ToString()。

最佳答案

如果你想传递某种格式,你应该用 [DisplayFormat] 帮助器装饰你的 View 模型属性:

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

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

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

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

@Html.Label("MyViewModelProperty", MyViewModelProperty.ToString("##,#.##"))

关于asp.net-mvc-4 - 为什么 DisplayName() 和 Label() Html 助手会丢失十进制值的左侧部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com