2013-03-12 78 views
1

嗨我想显示日期时间属性的日期和在curency forged的小数属性的价格。但我必须做错了,因为形成不起作用。这是它是如何显示:只显示日期从DateTime

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> 

我在做什么错?

回答

1

的问题是,DATAFORMAT anotations不能适用于TextBoxFor和LabelFor他们只能适用于DisplayFor和EditorFor

3

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; } 
+0

我已经tryed这solutiong是actualy第一个我已经在这里发帖之前甚至tryed和它的作品,但由于某种原因,不适合此页面... – aleczandru 2013-03-12 07:24:01

0

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

0

你可以简单地将其指定为>

DateTime.Now.Date.ToShortDateString() 

还是在的DateTimePicker的情况下>

dateTimePicker1.Value.Date.ToShortDateString(); 

还有一个选项叫做格式的日期时间选择器的情况下,保持短。

3

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

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

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

如果您需要输入尽管如此,您可能最好使用日期选择器。