您好我试图只显示日期时间属性的日期和在curency中形成的小数属性的价格。但我必须做错了,因为格式化不起作用。这是它的显示方式:
我希望这只使用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>
我做错了什么?
答案 0 :(得分:4)
[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; }
答案 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的选项。