在viewmodel中持久化的小数位数

时间:2011-02-23 09:27:45

标签: sql asp.net-mvc-2 viewmodel

我有一个viewmodel,它似乎是持久化数据库中设置的比例。我在SQL中有3个可更新字段存储为十进制(18,4)来表示钱。 我希望将viewmodel中的值格式化为2位小数,以使其看起来更清晰。

我的viewmodel看起来像这样:

   [DisplayFormat(DataFormatString = "{0:F2}",ApplyFormatInEditMode=true)]
    [DisplayName("Value 1")]
    public decimal Value1 { get; set; }

我的观点如下:

<%:Html.EditorFor(m => m.Value1)%>

这些值的默认值为0,所以当我在文本框中显示值时,该值仍然保留在数据库中设置的比例...

所以我的输出如下:

Value 1: 0.0000
Value 2: 0.0000
Value 3: 0.0000

如果您知道为什么会这样或者我如何在视图中解决它?

1 个答案:

答案 0 :(得分:2)

如果您希望使用[DisplayFormat]属性等元数据,则需要在视图中使用EditorFor / DisplayFor帮助程序:

<%= Html.EditorFor(x => x.Value1) %>

或:

<%= Html.DisplayFor(x => x.Value1) %>

而不是:

<%= Html.TextBoxFor(x => x.Value1) %>