仅显示DateTime中的日期

时间:2013-03-12 07:17:40

标签: c# asp.net-mvc asp.net-mvc-4

您好我试图只显示日期时间属性的日期和在curency中形成的小数属性的价格。但我必须做错了,因为格式化不起作用。这是它的显示方式:

enter image description here

我希望这只使用curency dolar金额显示日期和价格。 这是我的型号代码:

    [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>

我做错了什么?

5 个答案:

答案 0 :(得分:4)

日期

DateTime Formats

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

Double Formats

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

答案 1 :(得分:3)

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

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

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

如果您需要输入,那么您最好选择日期选择器。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

您只需将其指定为&gt;

即可
DateTime.Now.Date.ToShortDateString()

或者在datetimepicker&gt;

的情况下
dateTimePicker1.Value.Date.ToShortDateString();

如果日期时间选择器保持简短,还有一个名为Format的选项。