MVC / Razor DisplayFormat并不总是有效

时间:2015-07-17 19:20:44

标签: asp.net-mvc razor

我是MVC和Razor的新手,我有一些小的格式问题。

我有一个类对象,并定义了以下属性:

public class MarginData
    {
        [DisplayFormat(DataFormatString = "{0:###,###}")]
        public decimal? MarginAmount;

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

然后,在我的cshtml视图中,我有这段代码:

                        <td style="text-align: right; vertical-align: middle">
                            @Html.DisplayFor(x => item.Difference)
                        </td>
                        <td style="text-align: right;vertical-align: middle">
                            @Html.DisplayFor(x => item.MarginAmount)
                        </td>

我希望这些列/值的格式化方式相同,但是,一个格式符合预期:1,233,563,另一个只是数字(没有格式化),如4563477398。

我错过了什么? (这是未格式化的MarginAmount项目)

1 个答案:

答案 0 :(得分:2)

这些MVC属性旨在用于属性类型,而不是字段。添加{get; set;}会将其从字段更改为属性,从而允许属性发挥其魔力。