2

嗨,我试图只显示 datetime 属性的日期和以货币格式格式化的小数属性的价格。但我一定做错了,因为格式化不起作用。这是它的显示方式:

在此处输入图像描述

我希望这仅使用货币美元金额显示日期和价格。这是我的模型代码:

    [Required]
    [DataType(DataType.Date)]
    public DateTime PublicationDate { get; set; }


    [Required]
    [DataType(DataType.Currency)]
    [DisplayFormat(DataFormatString="{0:c}")]
    public decimal Price { get; set; }

这是我用于视图的代码:

         <p>
            @Html.LabelFor(model => model.PublicationDate , "Publication Date")
            @Html.TextBoxFor(model => model.PublicationDate, new { @class = "datepicker"})
         </p>
        <p>
            @Html.LabelFor(model => model.Price)
            @Html.TextBoxFor(model => model.Price)
         </p>

我究竟做错了什么?

4

5 回答 5

4

日期的DateTime 格式

[Required]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime PublicationDate { get; set; }

货币的双重格式

[Required]
[DataType(DataType.Currency)]
[DisplayFormat(DataFormatString="{0:0.00}")]
public decimal Price { get; set; }
于 2013-03-12T07:19:45.770 回答
3

我不是 MVC 人,但我怀疑你只想要一个 DisplayFormatString:

[DisplayFormat(DataFormatString="{0:d}")]

d是“短日期”的标准日期/时间格式字符串。您还可以使用自定义日期/时间格式字符串。请注意,对于向用户显示的文本,标准日期/时间格式通常更好,因为它可以适当地调整用户的文化。如果您使用固定的自定义格式,例如“MM/dd/yyyy”或“dd/MM/yyyy”,那么您最终会让使用不同格式的用户感到困惑。(例如,“06/05/2013”​​在英国是 5 月 6 日,但在美国是 6 月 5 日。)

但是,如果您需要此输入,则最好使用日期选择器。

于 2013-03-12T07:20:50.197 回答
1

"{0:d}"您可以为短日期模式使用格式化字符串。

于 2013-03-12T07:19:52.463 回答
1

问题是 DataFormat 注释不能应用于 TextBoxFor 和 LabelFor 它们只能应用于 DisplayFor 和 EditorFor

于 2013-03-18T14:44:31.453 回答
0

您可以简单地将其分配为>

DateTime.Now.Date.ToShortDateString()

或者如果是 datetimepicker>

dateTimePicker1.Value.Date.ToShortDateString();

在日期时间选择器的情况下,还有一个名为 Format 的选项使其保持简短。

于 2013-03-12T07:20:48.657 回答